ik wil een aantal advertenties weergeven (max 30) maar als er maar 5 resultaten zijn, dan wil ik willekeurig 25 oude advertenties weergeven om de lege ruimtes op te vullen.
In mijn tweede loop kijk ik of er geen dubbele advertenties zijn door middel van in_array, echter wanneer ik dit doe blijft de pagina net zo lang laden tot ik een time-out krijg.
echo'<div class="block mb1px"><a href="'.$fetch['url'].'" title="Bekijk deze website aangeboden via BETA.nl" target="_blank"><img src="uploads/'.$fetch['advertentie'].'" alt="Bekijk deze website aangeboden via BETA.nl" /></a></div>';
}else{
echo'<div class="block mr1px mb1px"><a href="'.$fetch['url'].'" title="Bekijk deze website aangeboden via BETA.nl" target="_blank"><img src="uploads/'.$fetch['advertentie'].'" alt="Bekijk deze website aangeboden via BETA.nl" /></a></div>';
Kijk, dat is een hele slimme oplossing. Ik was totaal de implode functie vergeten omdat ik die al jaren niet meer gebruikt heb.
Dankjewel voor deze oplossing!
EDIT: Ik krijg nu een foutmelding namelijk "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1".
$query = mysql_query('SELECT id, url, advertentie FROM site_advertenties WHERE id NOT IN ('.mysql_real_escape_string(implode(',', $cont)).')') or die(mysql_error());
$fetch = mysql_fetch_assoc($query);
SELECT id, url, advertentie FROM site_advertenties WHERE id NOT IN (38,39)
SELECT id, url, advertentie FROM site_advertenties WHERE id NOT IN (38,39,)You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
EDIT: De array was leeg en dat mag niet, nu standaard de nul (0) ingevuld en nu werkt het perfect. Dankjewel voor je oplossing!
Het ophalen van de resterende advertenties kan met één query lijkt mij?
Als dit "random" advertenties moeten zijn (en je advertentie-tabel meer dan 30 records bevat) kun je wellicht ORDER BY RAND() gebruiken.
Dus zoiets:
SELECT <kolomnamen van gewenste kolomgegevens>
FROM site_advertenties
WHERE id NOT IN (<reeds gebruikte id's>)
ORDER BY RAND()
LIMIT <aantal op te halen advertenties>
Ik weet trouwens niet of de query efficiënt blijft als de tabel (heel) erg groot wordt (in verband met ORDER BY RAND()) maar ik denk niet dat dit snel een probleem gaat vormen.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.