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>';


?>
Dit is niks voor mij om iets toe te voegen aan mijn code. Dat lukt me nooit.

Zie hier het resultaat van mijn knip en plak werkje:

Test pagina

<?php
$class_teller = 0;
$class_aantal = 3; // Het aantal classes dat je wilt gebruiken (0 tot $class_aantal-1)

$sql_info = 'SELECT * FROM table WHERE veld="voorwaarde"';
$res_info = mysql_query($sql_info);


foreach (range('A', 'Z') as $letter)
{
if ($res_info && mysql_num_rows($res_info) >= 1)
{
echo '<table class="border' . $class_teller . '" width="175" border="0" cellspacing="0" cellpadding="0">';
echo '<tr>';
echo '<td >';
//Als er meer winkels zijn dan 5 met de letters A t/m Z laat dan een link zien met alle winkels met de letter A t/m Z
$query = ('SELECT * FROM menu WHERE LEFT(menu_naam,1) = "' . $letter . '" ORDER BY menu_naam LIMIT 0,6');
$result = mysql_query($query) or die ("Sorry maar ik kan het menu niet weergeven, probeer het later opnieuw.");
$i = 0;
while($i < 5 AND $row_info = mysql_fetch_array($res_info))
{
$i++;
echo "<img src='plaatjes/smile.gif' border='0' align='left'><a href='?menu_id=$row->menu_id'>&nbsp;$row->menu_naam</a><br>\n";
}
if($row = mysql_fetch_object($result))
{
echo '<a href="meer.php?letter=' . $letter . '">Meer winkels...</a>';
}
echo '</td>';
echo '</tr>'.ENTER;


echo '</table>';
} else {

echo 'Geen resultaten gevonden';

}
}


$class_teller = ($class_teller++) % $class_aantal;
?>
Nee dat snap ik ook wel!
Maar ben hier ook al weer een weekje mee bezig hoor, dus het is niet zo dat ik het snel opgeef :)
Oke, weer een hele dag bezig geweest om borders in 3 kleuren te krijgen. Helaas werkt de code van Santhé niet . Het werkt nu wel maar hij blijft maar doortellen en stopt niet bij 3. Wat is er niet goed?

<?php
echo '<table width="175" cellspacing="4" cellpadding="0">';
$kleur_start = 0;
$kleur_einde = 3; // Het aantal classes dat je wilt gebruiken

$border = $kleur_start;
$border <= $kleur_einde;
foreach (range('A', 'Z') as $letter)
{
echo '<tr>';
echo '<td class="border' . $border . '">';
//Als er meer winkels zijn dan 5 met de letters A t/m Z laat dan een link zien met alle winkels met de letter A t/m Z
$query = ('SELECT * FROM menu WHERE LEFT(menu_naam,1) = "' . $letter . '" ORDER BY menu_naam LIMIT 0,6');
$result = mysql_query($query) or die ("Sorry maar ik kan het menu niet weergeven, probeer het later opnieuw.");
$i = 0;
while($i < 5 AND $row = mysql_fetch_object($result))
{
$i++;
echo "<img src='plaatjes/smile.gif' border='0' align='left'><a href='?menu_id=$row->menu_id'>&nbsp;$row->menu_naam</a><br>\n";
}
if($row = mysql_fetch_object($result))
{
echo '<a href="meer.php?letter=' . $letter . '">Meer winkels...</a>';
}

echo '</td>';
$border++;
echo '</tr>'.ENTER;
}
echo '</table>';
?>
Hoi Elsy,

Werkt mijn scriptje niet?

Edit: Krijg je foutmeldingen? Wat doet het wel en wat niet?
Hij laat alleen de eerste kleur zien.
En wat heb je staan als classes in je css?

.border0 {
	text-align: left;
	vertical-align: top;
	border: 1px solid #6797bd;
	padding: 4px;
}
.border1 {
	text-align: left;
	vertical-align: top;
	border: 1px solid #83c12e;
	padding: 4px;
}
.border2 {
	text-align: left;
	vertical-align: top;
	padding: 4px;
	border: 1px solid #d14b66;
}
We hebben het over dat script van mij toch?

Heb je dit aangepast?
$class_aantal = 2; // Het aantal classes dat je wilt gebruiken (0 tot $class_aantal-1)

in dit?
$class_aantal = 3; // Het aantal classes dat je wilt gebruiken (0 tot $class_aantal-1)
Ja, ik heb het zo. Maar ik wist niet goed wat ik in die tabel bij class= neer moest zetten en daar heb ik het volgende neer gezet:

<?php


$class_teller = 0;
$class_aantal = 3; // Het aantal classes dat je wilt gebruiken (0 tot $class_aantal-1)

echo '<table width="175" border="0" cellspacing="4" cellpadding="0">';

foreach (range('A', 'Z') as $letter)
{
echo '<tr>';
echo '<td class="border' . $class_teller . '">';
//Als er meer winkels zijn dan 5 met de letters A t/m Z laat dan een link zien met alle winkels met de letter A t/m Z
$query = ('SELECT * FROM menu WHERE LEFT(menu_naam,1) = "' . $letter . '" ORDER BY menu_naam LIMIT 0,6');
$result = mysql_query($query) or die ("Sorry maar ik kan het menu niet weergeven, probeer het later opnieuw.");
$i = 0;
while($i < 5 AND $row = mysql_fetch_object($result))
{
$i++;
echo "<img src='plaatjes/smile.gif' border='0' align='left'><a href='?menu_id=$row->menu_id'>&nbsp;$row->menu_naam</a><br>\n";
}
if($row = mysql_fetch_object($result))
{
echo '<a href="meer.php?letter=' . $letter . '">Meer winkels...</a>';
}
echo '</td>';
echo '</tr>'.ENTER;
$class_teller = ($class_teller++) % $class_aantal;
}
echo '</table>';

?>

Reageren