Ik heb een menu waar ik maximaal 5 items in wil hebben staan met de letter A.
Als er meer dan 5 items in de database zitten moet er een link onder komen te staan met "meer..."

Ik dacht dat ik het goed had gedaan maar het werkt niet. Kan iemand even kijken wat er niet goed gaat?

Test pagina


Code die ik nu heb:
Dit is het menu.

<?php
echo '<table width="200" border="0" cellspacing="0" cellpadding="0">';
echo '<tr>';
echo '<td>';
//Als er meer winkels met de letter A zijn dan 5 laat dan een link zien met alle winkels met de letter A
switch (true)
{
case (($row->menu_naam) > 5):
$query = ('SELECT * FROM menu WHERE LEFT(menu_naam,1) = "A" ORDER BY menu_naam LIMIT 0,5');
$result = mysql_query($query) or die ("Sorry maar ik kan het menu niet weergeven, probeer het later opnieuw.");
while ($row = mysql_fetch_object($result))
{
echo "<img src='plaatjes/smile.gif' border='0' align='left'><a href='?menu_id=$row->menu_id'>&nbsp;$row->menu_naam</a><br>\n";
}
echo '<a href="menuA.php" target="_self">Meer...</a>';

break;
//einde meer winkels met de letter A

//Laat de 5 winkels zien met de letter A
case (($row->menu_naam) <= 5):
$query = ('SELECT * FROM menu WHERE LEFT(menu_naam,1) = "A" ORDER BY menu_naam ');
$result = mysql_query($query) or die ("Sorry maar ik kan het menu niet weergeven, probeer het later opnieuw.");
while ($row = mysql_fetch_object($result))
{
echo "<img src='plaatjes/smile.gif' border='0' align='left'><a href='?menu_id=$row->menu_id'>&nbsp;$row->menu_naam</a><br>\n";
}
break;

//einde 5 winkels met de letter A
}//einde switch
echo '</td>';
echo '</tr>';
echo '</table>';


?>
Je hebt mijn script niet letterlijk overgenomen. Daardoor staat de indeling niet meer correct. Copy/paste hem eens en zet jouw stukje even tussen /* en */ in.
Oke, kijk maar even.
Wat wel al goed gaat is dat hij alleen tabellen maakt waar ook items inzitten.

Testpagina
Zet onder deze regel:
$class_teller = ($class_teller++) % $class_aantal;

eens
echo $class_teller;
Gedaan
Maak van
$class_teller = ($class_teller++) % $class_aantal;
eens
$class_teller = (($class_teller++) % $class_aantal);
hmm, geen verschil

ps. ben tussendoor met soep bezig, ben dus niet altijd even snel met antwoorden. ;)
Ik moet nu weg (vanavond ook). Als het aan mij ligt gaan we morgenmiddag verder. Eet smakelijk zo dadelijk.
Zou dit dan niet werken?

Maak van
$class_teller = ($class_teller++) % $class_aantal;
eens
$class_teller++;
Voor zover ik kan zien werkt dit goed! Maar ik ben net bezig met linken toevoegen en de site mooier maken.

Nieuwe testpagina

Tot zover dus bedankt, moet nu (alweer) voor soep en eten zorgen.

Je hoort vast nog wel van me :)
Voor zover ik kan zien werkt dit goed!

Nee, dat was slechts een testje.

Ik heb het getest en dit is de goede regel:
$class_teller = ($class_teller + 1) % $class_aantal;

De ++ werkt dus niet zoals ik het had.

Reageren