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:

<?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).

<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?
Ik weet niet hoe je tabellen eruit zien? Hoe zit je datamodel in elkaar?
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.
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.
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?
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
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.
In ieder geval bedankt:)

Reageren