ik heb op mijn website 3 reclame tabellen. Het is de bedoeling dat de reclame bij het openen van de pagina elke keer verandered.
Ik gebruik hiervoor een simpel random script dat op zich prima werkt:
<?
$query = "SELECT * FROM reclame ORDER BY RAND() LIMIT 0,1";
$res = mysql_query($query) or trigger_error(mysql_error());
while ($row = mysql_fetch_array($res))
{
?>
Wat het script nu doet is de reclames uit de database halen en deze random in de tabellen zet. Op zich is dit ook de bedoeling, maar hij laat nu in alle 3 de reclame tabellen dezelfde reclames zien.
het is de bedoeling dat in elke reclame tabel dus andere reclame komt te staan.
Heeft iemand enig idee hoe ik ervoor kan zorgen dat een bepaalde reclame niet dubbel weergegeven kan worden en er dus in elke tabel iets anders komt te staan ?
Zoek eerst eens uit wat nu het resultaat van je query is. Wanneer jij gewoon 3 resultaten wilt hebben, dan is LIMIT 3 voldoende.
De while-loop wordt dan 3 x doorlopen (je hebt tenslotte 3 resultaten, test dit ook even in PHPmyAdmin). Ga dan eens in de rest van je code kijken waarom het daar mis gaat.
Edit: Waar is de rest van je code dan? Er wordt hier helemaal nergens een tabel aangemaakt.
Iedere keer dat jij de while-lus doorloopt, zet je 3x een <?php echo $row['reclamelink']; ?> als output. Wat zou er dan gebeuren? Ik verwacht dat je dan 3x dezelfde output in verschillende div's op het scherm krijgt.
Echter, om dat de while-lus x-keer wordt doorlopen, zullen er ook x-aantal div-jes over elkaar heen staan. Kijk maar eens in je html-broncode.
Je moet in je lus slechts 1 x <?php echo $row['reclamelink']; ?> zetten en een variabele aanmaken voor het beschrijven van de div. Laat een tellertje meelopen o.i.d.