random script
Ik heb een vraagje. Ik heb een script op mijn site die via een sql query random een case uit de database haalt, en via een echo een foto (var 'show').
mysql_connect('');
mysql_select_db('');
// random case uit tabel halen en zet die in de query
$sql = "SELECT * FROM vlinders ORDER BY RAND() LIMIT 0,1";
$var = mysql_query($sql);
$row = mysql_fetch_assoc($var);
echo "<a href='" .$row['url']. "'><img src='". $row['show'] ."'width='288' 'height='212' border='0'></a><br>\n";
Mijn tabel ziet er als volgt uit
id show foto1 foto2 foto3 aantal fotos
------------------------------------------------
id1 1.jpg 1.jpg 2.jpg 2
id2 1.jpg 1.jpg 1
id3 1.jpg 1.jpg 2.jpg 3.jpg 3
etc
Per case verschilt dus het aantal foto's. Het script wat ik nu heb gebruikt alleen variabele 'show', en dus wordt steeds alleen 1.jpg van iedere case weergegeven. Nou wil ik graag al mijn foto's in de random banner hebben, dus ook foto3 van id 202 en foto12 van id23 etc. Is er een manier om dit te doen? Via MySQL?
Alvast bedankt!
Gewijzigd op 01/01/1970 01:00:00 door SCO
Het kan wel met MySQL, maar dan moet je je datamodel aanpasssen. Veldnamen als 'foto1', 'foto2' enz. wijzen altijd op een verkeerd datamodel.
fotos
---------------
id
foto
shows
---------------
id
show
fotos_shows
---------------
foto_id
show_id
Stel nu dat je in fotos dit hebt:
1 - foto1.jpg
2 - foto2.jpg
3 - foto3.jpg
en in shows dit:
1 - show1
2 - show2
3 - show3
Dan kun je in de tabel fotos_shows dit doen:
1 - 1 (foto 1 zit in show 1)
1 - 2 (foto 1 zit in show 2)
2 - 2 (foto 2 zit in show 2)
1 - 3 (foto 1 zit in show 3)
2 - 3 (foto 2 zit in show 3)
3 - 3 (foto 3 zit in show 3)
Als je dan alle foto's uit show 3 nodig hebt, doe je:
SELECT fotos.foto
FROM fotos, fotos_shows
WHERE fotos_shows.show_id = 3
AND fotos.id = fotos_shows.foto_id
ORDER BY fotos.foto ASC
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
Heel erg bedankt, ik ga het vanavond eens proberen!
[sarcast mode] Jan niet bumpen he;)[/sarcast mode]
@ michel: oeps, pardon.
Jan ik heb je tips opgevolgd en een nieuwe database opgezet , even tijdsinvestering maar zeker de moeite waard. Bedankt!