data gescheiden weergeven

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ruud

ruud

03/09/2008 20:29:00
Quote Anchor link
Ik heb een database met registraties van vliegtuigen waarvan ik een foto heb (http://www.pro-aviation.nl/database/). Nu staat alles eignelijk onder elkaar, ookal zijn het verschillende maatschappijen.

Nu wil ik graag dat bijvoorbeeld alle Ryanair bij elkaar staan en alle Easyjet. Ik heb al een concept gemaakt (HTML, is toch een voorbeeldje om hier te tonen) zoals ik het graag zou willen hebben.
http://www.pro-aviation.nl/database/new/).

Ik heb echter geen flauw idee hoe ik dat kan maken.

Hieronder het script dat de resultaten laat zien:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
<?php
include("conn.php");
                    
        error_reporting( E_ALL ^ E_NOTICE );
        
        $sql         = mysql_query( "SELECT * FROM fotodb ORDER BY maatschappij ASC, registratie ASC" );
        $hoeveel    = mysql_num_rows( $sql );        
        $max        = 40;
        $filter        = $hoeveel / $max;        
        $round        = ceil( $filter );
        $begin        = $_GET['page'];
        
        
        
        if( !isset( $_GET['page'] ) or !$_GET['page'] )
            $begin = 0;
        
        // begin bij de volgende $max foto's
        $begin = $begin * $max;
        
           $sql_ophalen = mysql_query( "SELECT
                                        *
                                     FROM
                                         fotodb
                                    
                                    ORDER BY maatschappij ASC, registratie ASC
                                    
                                     LIMIT "
.$begin.", ".$max."
                                    "
) or die( mysql_error() );

        
        $i = 0;        
            
            //$SelectLeden = mysql_query( "SELECT * FROM fotodb ORDER BY id DESC" );
            
            if( mysql_num_rows( $sql_ophalen ) > 0 )
            {

echo "<P><b>Pagina:</b> ";    
$i    =    0;
                
        while( $i <= $filter )
        {

            
echo "<a href='index.php?page=".$i."'>" . $i . "</a> ";
            
            $i++;
        }

                echo'<BR>




<BR>
<table border="0" cellpadding="0" cellspacing="" width="1024" STYLE="font-size: 12px" STYLE="border-style: solid; border-color: black; border-width: 1px;">
<tr align="center">
<td width="7%" height="12" bgcolor="7b8a8f" class="style2" id="table_border_bottom"><div align="left">&nbsp;Registratie</div></td>
<td width="15%" height="12" bgcolor="7b8a8f" class="style2" id="table_border_bottom"><div align="left">Toestel</div></td>
<td width="19%" height="12" bgcolor="7b8a8f" class="style2" id="table_border_bottom"><div align="left">Maatschappij&nbsp;&nbsp;</div></td>
<td width="22%" height="12" bgcolor="7b8a8f" class="style2" id="table_border_bottom"><div align="left">Special</div></td>
<td width="4%" height="12" bgcolor="696a6a" class="style2" id="table_border4_bottom"><div align="center">Land</div></td>
<td width="4%" height="12" bgcolor="696a6a" class="style2" id="table_border4_bottom"><div align="center">Locatie</div></td>
<td width="7%" height="12" bgcolor="696a6a" class="style2" id="table_border4_bottom"><div align="center">Datum</div></td>
<td width="7%" height="12" bgcolor="696a6a" class="style2" id="table_border4_bottom"><div align="center">Jaar</div></td>
</tr>
'
;
                
                while( $ObLid = mysql_fetch_assoc( $sql_ophalen ) )
                {

                        echo'  
 

<tr>
<td height="12" bgcolor="dfe0e0" class="style3" id="stippel"><div align="left" >&nbsp;'
.$ObLid['registratie'].'</div></td>
<td height="12" bgcolor="dfe0e0" class="style3" id="stippel"><div align="left" > '
.$ObLid['toestel'].'</div></td>
<td height="12" bgcolor="dfe0e0" class="style3" id="stippel"><div align="left" > '
.$ObLid['maatschappij'].'</div></td>
<td height="12" bgcolor="dfe0e0" class="style3" id="speciaal"><div align="left" ><i>'
.$ObLid['speciaal'].'</i></div></td>
<td height="12" bgcolor="bec3c3" class="style3" id="stippel" id="table_border4"><div align="center" ><IMG src="./images/vlaggen/'
.$ObLid['land'].'.jpg" height="10" width="15" alt="'.$ObLid['land'].'"></div></td>
<td height="12" bgcolor="bec3c3" class="style3" id="stippel" id="table_border4"><div align="left" >&nbsp;'
.$ObLid['locatie'].'</div></td>
<td height="12" bgcolor="bec3c3" class="style3" id="stippel" id="table_border4"><div align="center" > '
.$ObLid['datum'].'</div></td>
<td height="12" bgcolor="bec3c3" class="style3" id="stippel" id="table_border4"><div align="center" > '
.$ObLid['jaar'].'</div></td>
</tr>









  
  '
;
                }

                
                echo'</table><BR>';
            }

            else
            {
                echo'Er zijn geen fotos geplaatst.';
            }

        echo "<P><b>Pagina:</b> ";
        
        $i    =    0;
                
        while( $i <= $filter )
        {

            echo "<a href='index.php?page=".$i."'>" . $i . "</a> ";
            
            $i++;
        }

                
?>


Hier de HTML tabel uit mijn concept (voor het geval dat).
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<table border="1" cellspacing="0" cellpadding="0" width="600">
<tr>
<td align="left" colspan="4">Ryanair</td>
</tr>
<tr>
<td width="12%"><B>Registratie</B></td><td width="20%"><B>Toestel</b></td><td width="40%"><B>Locatie</b></td><td width="5%"><b>Foto</b></td>
</tr>
<tr>
<td>EI-DAV</td><td>Boeing 737-800</td><td>Londen Stansted (STD/EGSS)</td><td><a href="" target="_blank">Foto</a></td>
</tr>
<tr>
<td>EI-DPD</td><td>Boeing 737-800</td><td>Londen Stansted (STD/EGSS)</td><td><a href="" target="_blank">Foto</a></td>
</tr>
<tr>
<td>EI-DWA</td><td>Boeing 737-800</td><td>Eindhoven Airport (EIN/EHEH)</td><td><a href="" target="_blank">Foto</a></td>
</tr>
<tr>
<td>EI-DWB</td><td>Boeing 737-800</td><td>Eindhoven Airport (EIN/EHEH)</td><td><a href="" target="_blank">Foto</a></td>
</tr>
</table>
<P>
<table border="1" cellspacing="0" cellpadding="0" width="600">
<tr>
<td align="left" colspan="4">Martinair</td>
</tr>
<tr>
<td width="12%"><B>Registratie</B></td><td width="20%"><B>Toestel</b><td width="40%"><B>Locatie</b></td></td><td width="5%"><b>Foto</b></td>
</tr>
<tr>
<td>PH-MPQ</td><td>Boeing 747-400</td><td>Amsterdam Schiphol (AMS/EHAM)</td><td><a href="" target="_blank">Foto</a></td>
</tr>
</table>


Kan iemand mij helpen?
 
PHP hulp

PHP hulp

19/04/2024 09:06:58
 
Jan Koehoorn

Jan Koehoorn

03/09/2008 21:45:00
Quote Anchor link
Ik weet niet hoe je tabellen eruit zien? Hoe zit je datamodel in elkaar?
 
Ruud

ruud

03/09/2008 22:01:00
Quote Anchor link
SQL query voor mijn tabel ziet er zo uit:

CREATE TABLE `fotodb` (
`id` int(11) NOT NULL auto_increment,
`registratie` varchar(100) NOT NULL,
`cn` varchar(100) NOT NULL,
`toestel` varchar(100) NOT NULL,
`winglets` varchar(100) NOT NULL,
`maatschappij` varchar(500) NOT NULL,
`speciaal` varchar(100) NOT NULL,
`extentie` varchar(100) NOT NULL,
`land` varchar(100) NOT NULL COMMENT 'Eerste letter als hoofdletter (bijv. Nederland, Engeland)',
`locatie` varchar(100) NOT NULL,
`datum` varchar(5) NOT NULL COMMENT 'in formaat: xx-xx (dag-maand)',
`jaar` year(4) NOT NULL default '2008',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=58 ;

Ik neem aan dat u dit bedoeld.
Mocht je nog verbeterpunten hebben voor mijn tabel (de query) zeg het gerust.
 
Jan Koehoorn

Jan Koehoorn

03/09/2008 22:04:00
Quote Anchor link
Zeker. Je datamodel kan een stuk beter. De eerste stappen:

1) maak een aparte tabel voor maatschappijen
2) maak een aparte tabel voor toestellen
3) maak een aparte tabel voor landen
4) sla een datum nooit op als een varchar. Gebruik hiervoor het type DATE of DATETIME

Als je datamodel eenmaal goed is opgezet, kun je uit je database laten rollen wat je maar wilt.
 
Ruud

ruud

03/09/2008 22:06:00
Quote Anchor link
oke, dan ga ik dat als eerste doen.

Hoe moet ik het daarna opzetten? Dat de juiste toestellen bij de juiste maatschappijen, etc terecht komen?
 
Jan Koehoorn

Jan Koehoorn

03/09/2008 22:09:00
Quote Anchor link
Voorbeeld: je tabel maatschappijen ziet er zo uit:

maatschappijen
------------------------
id
maatschappij

dan krijg je in je tabel fotodb:

fotodb
------------------------
id
maatschappij_id

Het veld maatschappij_id uit de tabel fotodb moet de waarde bevatten van het veld id in de tabel maatschappijen.

Edit: het voordeel van deze methode is dat wanneer een maatschappij ineens anders gaat heten, je alleen 1 veld in de tabel maatschappijen hoeft aan te passen, en niet tig velden in de tabel fotodb
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 
Ruud

ruud

03/09/2008 22:17:00
Quote Anchor link
Ik heb de volgende tabellen gemaakt:

maatschappijen
------------------------
id
maatschappij

toestellen
------------------------
id
toestel
registratie
winglets
speciaal

landen
------------------------
id
land
vliegveld

fotodb
------------------------
id
datum
jaar

Ik snap echter het gedeelte niet helemaal wat u zegt over hoe mijn tabel fotodb eruit ziet.
 
Jan Koehoorn

Jan Koehoorn

03/09/2008 22:23:00
Quote Anchor link
Je zou even een tutorial over normalisatie door moeten lezen. Dan krijg je een beetje een idee over deze manier van werken.
 
Ruud

ruud

03/09/2008 22:25:00
Quote Anchor link
In ieder geval bedankt:)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.