Meer dan 5 dan extra link toevoegen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

16/06/2006 10:42:00
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?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>';


?>
 
PHP hulp

PHP hulp

17/11/2024 09:02:03
 
- SanThe -

- SanThe -

16/06/2006 11:24:00
Quote Anchor link
Hoi Elsy, dat is al weer een tijdje geleden. Groetjes.

Ik zou het zo doen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?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
$query = ('SELECT * FROM menu WHERE LEFT(menu_naam,1) = "A" 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="menuA.php" target="_self">Meer...</a>';
}

echo '</td>';
echo '</tr>';
echo '</table>';
?>



Edit: Je kan dit zelfs ook nog een een loop gooien van A tot en met Z.
Edit2: Effectiever gemaakt.
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 

16/06/2006 11:49:00
Quote Anchor link
Nou, bedankt, dit werkt in ieder geval.

Inderdaad wil ik het helemaal voor het alfabet hebben, misschien kun je hier nog mee helpen?

Het probleem is nu weer, wat ik dus altijd heb, dat als je op "meer..." klikt, dat menu niet in de html tabel opent maar in een nieuw venster, terwijl ik er target=_self in heb gezet.

Moet nu de kids uit school halen dus duurt even voor je een reactie krijgt.
 
- SanThe -

- SanThe -

16/06/2006 12:02:00
Quote Anchor link
Zoiets? En ik heb de target weggehaald, kijk even of het nou wél goed gaat.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
echo '<table width="200" border="0" cellspacing="0" cellpadding="0">';
foreach (range('A', 'Z') as $letter)
{

    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
    $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="menuA.php">Meer...</a>';
    }

    echo '</td>';
    echo '</tr>';
}

echo '</table>';
?>
 
ArendJan

ArendJan

16/06/2006 13:39:00
Quote Anchor link
Bij mij werkt het goed hoor....
 

16/06/2006 15:11:00
Quote Anchor link
Daar ben ik weer.....

Hier ( ' . $letter . ' ) moest ik nog even dubbele " omheen zetten en toen werkte het.

Ik heb nog iets gewijzigd zodat de tabellen om en om een andere border kleur krijgen. Weet je trouwens of je nog meer kleuren kunt gebruiken, of blijft het beperkt tot 2. Hij laat nu ook de tabellen zien van het hele alfabet. Kun je instellen dat hij alleen die letters van het alfabet laat zien waar items inzitten?

Het andere werkt nog niet.
Als je op "meer winkels..." klikt krijg je de melding dat er geen verbinding gemaakt kan worden. Dit komt volgens mij omdat hij een nieuwe pagina opent.

Die pagina heet "meer.php" en daar heb ik alleen maar het menu in gezet. Of moet ik hier de hele pagina weer omheen zetten?

Test pagina

code van menu.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php

foreach (range('A', 'Z') as $letter)
{

$class ^= 1;
echo '<table class="border' . $class . '" 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 = 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">Meer winkels...</a>';
    }

    echo '</td>';
    echo '</tr>'.ENTER;


echo '</table>';
}

?>



code van meer.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
echo '<table width="175" border="0" cellspacing="0" cellpadding="0">';
foreach (range('A', 'Z') as $letter)
{

echo '<tr>';
echo '<td>';
$query = ('SELECT * FROM menu WHERE LEFT(menu_naam,1) = "' . $letter . '" 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";
    }

echo '<a href="menu.php">Terug naar menu</a>';
echo '</td>';
echo '</tr>';
echo '</table>';
}


?>
 
- SanThe -

- SanThe -

16/06/2006 17:00:00
Quote Anchor link
Met dit geeft ie alléén iets als er iets is gevonden en je kan opgeven hoeveel classes je wilt gebruiken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
$class_teller
= 0;
$class_aantal = 2; // Het aantal classes dat je wilt gebruiken (0 tot $class_aantal-1)
foreach (range('A', 'Z') as $letter)
{

    //Als er meer winkels met de letter A zijn dan 5 laat dan een link zien met alle winkels met de letter A
    $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.");
    if(mysql_num_rows($result) > 0) // Er is iets gevonden
    {
        echo '<table width="200" class="border' . $class_teller . '" cellspacing="0" cellpadding="0">';
        echo '<tr>';
        echo '<td>';
        $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="menuA.php">Meer...</a>';
        }

        echo '</td>';
        echo '</tr>';
        $class_teller = ($class_teller++) % $class_aantal;
        echo '</table>';
    }
}

?>
 
- SanThe -

- SanThe -

16/06/2006 17:03:00
Quote Anchor link
Moet deze link dan niet anders?

echo '<a href="menuA.php">Meer...</a>';

Iets in de trant van:

echo '<a href="meer.php?letter=' . $letter . '">Meer...</a>';

Zodat je weet om welke letter het gaat.
 

16/06/2006 17:58:00
Quote Anchor link
Ik zal zo even kijken, moet de tafel afruimen.
Ik had er al meer.php van gemaakt maar nog zonder die $letter erbij.
 

19/06/2006 10:27:00
Quote Anchor link
Het werkt niet bij mij. Maar ik weet ook niet goed wat ik in de tabel class moet zetten.

En hij laat nog steeds alle tabellen zien ook al zit er geen item in de database.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php

foreach (range('A', 'Z') as $letter)
{

$class_teller = 0;
$class_aantal = 3; // Het aantal classes dat je wilt gebruiken (0 tot $class_aantal-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 = 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>';
}

?>
 
- wes  -

- wes -

19/06/2006 11:02:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?

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

if ($res_info && mysql_num_rows($res_info) >= 1)
{

    //er is resultaat -> Tabel maken!
    echo '<table>';
    echo '<tr>';
    echo '<td>Kop1</td>';
    echo '<td>Kop2</td>';
    echo '<td>Kop3</td>';
    echo '</tr>';

    //resultaten ophalen!
    while($row_info = mysql_fetch_array($res_info))
    {


    echo '<tr>';
    echo '<td>'.$row_info['veld1'].'</td>';
    echo '<td>'.$row_info['veld2'].'</td>';
    echo '<td>'.$row_info['veld3'].'</td>';
    echo '</tr>';

    }


    //en de tabel weer sluiten
    echo '</table>';

}
else {

    echo 'Geen resultaten gevonden';

}

?>


op die manier los je je laatste probleem op
 

19/06/2006 11:19:00
Quote Anchor link
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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?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;
?>
 
- wes  -

- wes -

19/06/2006 11:28:00
Quote Anchor link
@elsy, www.rome.com is ook niet in 1 dag gebouwd
 

19/06/2006 11:45:00
Quote Anchor link
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 :)
 

19/06/2006 14:58:00
Quote Anchor link
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?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?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>';
?>
 
- SanThe -

- SanThe -

19/06/2006 15:34:00
Quote Anchor link
Hoi Elsy,

Werkt mijn scriptje niet?

Edit: Krijg je foutmeldingen? Wat doet het wel en wat niet?
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 

19/06/2006 15:46:00
Quote Anchor link
Hij laat alleen de eerste kleur zien.
 
- SanThe -

- SanThe -

19/06/2006 15:47:00
Quote Anchor link
En wat heb je staan als classes in je css?
 

19/06/2006 15:49:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
.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;
}
 
- SanThe -

- SanThe -

19/06/2006 15:51:00
Quote Anchor link
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)
 

19/06/2006 15:55:00
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?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>';

?>
Gewijzigd op 01/01/1970 01:00:00 door
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.