Welke linken horen in welke tabel?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 4 5 volgende »

12/09/2006 14:34:00
Quote Anchor link
Ik ben het weer helemaal kwijt en kom er niet uit.

Ik wil simpele tabellen maken met een kop erboven en daaronder de linken die bij die kop horen.

Hoe maak ik mijn query zo dat de juiste linken in de juiste tabel terecht komen?



testpagina

#
# Table structure for table `linken`
#

CREATE TABLE linken (
link_id int(5) NOT NULL auto_increment,
link_naam varchar(255) NOT NULL default '',
link_url varchar(255) NOT NULL default '',
cat_id int(5) NOT NULL default '0',
PRIMARY KEY (link_id)
) TYPE=MyISAM;


#
# Table structure for table `categorie`
#

CREATE TABLE categorie (
cat_id int(5) NOT NULL auto_increment,
cat_naam varchar(255) NOT NULL default '',
volgende_pagina varchar(255) NOT NULL default '',
PRIMARY KEY (cat_id)
) TYPE=MyISAM COMMENT='Categorie namen';


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
<?php
//Laat zien hoeveel linken er in die categorie zitten:
$teller = "SELECT COUNT(link_id) AS teller FROM linken  ";
$resultaatTeller = mysql_query($teller) or die ("Sorry maar kan de teller niet weergeven.");
$laatZienTeller = mysql_fetch_assoc($resultaatTeller);

//Laat de categorie naam zien boven in de tabel
$queryNaam = 'SELECT * FROM categorie ORDER BY cat_naam';
$resultNaam = mysql_query($queryNaam) or die ("Sorry maar ik kan de naam van de categorie niet weergeven, probeer het later opnieuw.");
while ($rowNaam = mysql_fetch_object($resultNaam))
{

echo '<table width="185" class="tabelborder" cellspacing="0" cellpadding="0">';
echo '<tr>';
echo '<td class="kopje">'.$rowNaam->cat_naam.'&nbsp;<div class="teller"> ' . $laatZienTeller['teller'].'</div>' ;
echo '</td>';
echo '</tr>'.ENTER;
//Laat de linken zien
$queryLink = 'SELECT * FROM linken ORDER BY RAND()LIMIT 0,3';
$resultLink = mysql_query($queryLink) or die ("Sorry maar ik kan de linken van de categorie niet weergeven, probeer het later opnieuw.");

while ($rowLink = mysql_fetch_object($resultLink))
{

    echo '<tr>';
    echo '<td>-'. $rowLink->link_url.'</a>';
    echo '</td>';
    echo '</tr>'.ENTER;
}

        echo '<tr>';
        echo '<td class="meer">';

        echo '<a href="index2.php?categorie=' . $rowNaam->cat_naam . '&pagina='.$rowNaam->volgende_pagina.'"><font class="meer">Meer in de categorie '.$rowNaam->cat_naam.'&nbsp;-></font></a>';
        
        echo '</td>';
        echo '</tr>';
        

        echo '</table>';
    
}
}

?>
 
PHP hulp

PHP hulp

12/01/2025 16:06:46
 
- wes  -

- wes -

12/09/2006 14:39:00
Quote Anchor link
longtime no c elsy :)

kan je even schematisch je doel weergeven
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
| naam | adres |
-------------------
| naam | adres |


zoiets, volgens mij is het namelijk puur je tabelopbouw
 

12/09/2006 14:43:00
Quote Anchor link
| categorienaam |
--------------------
|-link |
|-link |
|-link |
--------------------
|meer -> |

Eigenlijk moet het een zelfgemaakte startpagina worden met allemaal linken.
Je moet onderaan iedere tabel kunnen klikken op een link zodat je nog meer linken in die categorie te zien krijgt op een aparte pagina. Maar dat komt nog wel.

Eerst maar eens de juiste linken in de juiste tabel.

Hopelijk is dit wat je bedoelt.
 

13/09/2006 11:23:00
Quote Anchor link
Wie heeft er even tijd om te kijken?
 
Romano

Romano

13/09/2006 11:33:00
Quote Anchor link
volgens mij is het zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$query
= "SELECT * FROM linken LEFT JOIN categorie ON linken.cat_id = categorie.cat_id
WHERE cat_id = "
$_GET['cat_id']" ORDER BY cat_id";
    
?>


Ik weet het niet zker maar zoiets.
 

13/09/2006 11:42:00
Quote Anchor link
Nee, helaas, dit werkt ook niet.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php

$queryLink
= 'SELECT * FROM linken LEFT JOIN categorie ON linken.cat_id = categorie.cat_id WHERE cat_id = '.$_GET['cat_id'].' ORDER BY RAND()LIMIT 0,3';

?>
 
Joren de Wit

Joren de Wit

13/09/2006 11:50:00
Quote Anchor link
Je zult in je laatste query waarmee je de links uit de database haalt nog aan moeten geven welke links geselecteerd moeten worden. Namelijk degene die bij de betreffende categorie horen...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$queryLink
= "
    SELECT *
    FROM linken
    WHERE cat_id = '"
. $rowNaam->cat_id ."'
    LIMIT 0,3"
;
?>


En dan liever in plaats van * alleen de velden selecteren die je ook daadwerkelijk gebruikt...
 

13/09/2006 12:01:00
Quote Anchor link
Wow, zeg het werkt!
En bedankt voor de uitleg erbij. Het ziet er zoals gewoonlijk heel logisch uit maar kom er maar weer eens op....

Het begin is er nu.
Nu nog even puzzelen aan delink onder iedere tabel om alle linken te tonen op een vervolg pagina....wordt vervolgd....

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
44
45
46
47
48
49
50
51
52
53
<?php
echo '<table align="center"><tr>';
$kolommen = 4;

//Laat de categorie naam zien boven in de tabel
$queryNaam = 'SELECT * FROM categorie ORDER BY cat_naam';
$resultNaam = mysql_query($queryNaam) or die ("Sorry maar ik kan de naam van de categorie niet weergeven, probeer het later opnieuw.");
while ($rowNaam = mysql_fetch_object($resultNaam))
{

//Laat zien hoeveel linken er in die categorie zitten:
$teller = 'SELECT COUNT(link_id) AS teller FROM linken  WHERE cat_id = '. $rowNaam->cat_id .'';
$resultaatTeller = mysql_query($teller) or die ("Sorry maar kan de teller niet weergeven.");
$laatZienTeller = mysql_fetch_assoc($resultaatTeller);
echo '<td valign="top"><table width="185" align="left" class="tabelborder" cellspacing="0" cellpadding="0">';
echo '<tr>';
echo '<td class="kopje">'.$rowNaam->cat_naam.'&nbsp;<div class="teller"> ' . $laatZienTeller['teller'].'</div>' ;
echo '</td>';
echo '</tr>'.ENTER;
//Laat de linken zien
$queryLink = 'SELECT cat_id,link_url FROM linken WHERE cat_id = '. $rowNaam->cat_id .' ORDER BY RAND()LIMIT 0,3';
$resultLink = mysql_query($queryLink) or die ("Sorry maar ik kan de linken van de categorie niet weergeven, probeer het later opnieuw.");

while ($rowLink = mysql_fetch_object($resultLink))
{

    echo '<tr>';
    echo '<td class="link">-'. $rowLink->link_url.'';
    echo '</td>';
    echo '</tr>'.ENTER;
}

        echo '<tr>';
        echo '<td class="meer">';

        echo '<a href="index2.php?categorie=' . $rowNaam->cat_naam . '&pagina='.$rowNaam->volgende_pagina.'"><font class="meer">Meer in de categorie '.$rowNaam->cat_naam.'&nbsp;-></font></a>';
        
        echo '</td>';
        echo '</tr>';
        

        echo '</table>'.ENTER;
    



$counter++;
    if($counter==$kolommen)
    {

        echo '</td></tr></table><table align="center"><tr>';
        $counter = 0;
    }
}
}

echo '</td></tr></table>'.ENTER;
?>
 
Harmen

Harmen

13/09/2006 14:53:00
Quote Anchor link
[beetje off]
wel 500 complimenten voor de layouts die jij maakt zeg!
Die zijn echt gaaf!
[/beetje off]
 

13/09/2006 21:23:00
Quote Anchor link
[off topic]Thanks ! ga er helemaal van blozen [/off topic]
 
- SanThe -

- SanThe -

13/09/2006 21:25:00
Quote Anchor link
Elsy:
[off topic]Thanks ! ga er helemaal van blozen [/off topic]

Staat je best goed...;)
 
Robert Deiman

Robert Deiman

13/09/2006 21:28:00
Quote Anchor link
[net zo'n beetje off]
inderdaad, ziet er goed uit elsy, geen opmerkingen over ;)
Wat overigens wel mooi zou zijn, is: als er niet meer dan 3 links zijn, dat er ook geen link is naar de pagina met "meer links over dat onderwerp". Dan kunnen daarover ook geen onduidelijkheden ontstaan.
Verder helemaal top dus!
[/net zo'n beetje off]
 

13/09/2006 22:02:00
Quote Anchor link
Robert:
[net zo'n beetje off]
inderdaad, ziet er goed uit elsy, geen opmerkingen over ;)
Wat overigens wel mooi zou zijn, is: als er niet meer dan 3 links zijn, dat er ook geen link is naar de pagina met "meer links over dat onderwerp". Dan kunnen daarover ook geen onduidelijkheden ontstaan.
Verder helemaal top dus!
[/net zo'n beetje off]



Ja, dat moet allemaal nog komen maar ik ben hier net mee begonnen. Er moeten ook meer dan 3 linken zichtbaar worden maar dit is nog een test.

Ik moet nu proberen om, als je dus op die bewuste link klikt, een pagina te openen met boven in alle kopjes bv. Kleding Kinderen en daar de linken onder. Dat is al wel gelukt, je ziet nu 1 kolom.

Maar nu wil ik nog graag dat als daar dan weer meer dan bv 10 linken in staan dat hij er automatisch een tabel naast zet.
Tja, dat is weer ietsje moeilijker volgens mij.
 
Robert Deiman

Robert Deiman

13/09/2006 22:08:00
Quote Anchor link
Wat je daaraan kan doen (10 per tabel) is het volgende:

Je laat 2 tellers meelopen.. bij de 1 op 10 sluit je de tabel en open je een nieuwe, en bij de 3 sluit je de tabel, begin je op de nieuwe regel, en doe je hetzelfde opnieuw :)
 

14/09/2006 11:15:00
Quote Anchor link
Dit lukt me helaas niet.

Je kunt op de eerste pagina even testen met de kolom: Kleding Kinderen. Als je daar onderin op de link klikt voor nog meer linken kom je op de vervolgpagina terecht.
Daar moeten automatisch maar (nu even als voorbeeld) 10 linken in verschijnen en dan een nieuwe tabel ernaast.
Ik heb je aanwijzingen geprobeerd op te volgen maar het lukt niet.


Dit is de code voor die tabel op de vervolgpagina:

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
44
45
<?php
//Laat de categorie naam zien boven in de tabel
$queryNaam = 'SELECT * FROM categorie WHERE cat_id = '.$_GET['cat_id'].' ORDER BY cat_naam';
$resultNaam = mysql_query($queryNaam) or die ("Sorry maar ik kan de naam van de categorie niet weergeven, probeer het later opnieuw.");

while ($rowNaam = mysql_fetch_object($resultNaam))
{


echo '<td valign="top">';
//Dit is de code voor een tabel
echo '<table width="185" align="left" class="tabelborder" cellspacing="0" cellpadding="0">';
echo '<tr>';
echo '<td class="kopje">'.$rowNaam->cat_naam.'</div>' ;
echo '</td>';
echo '</tr>'.ENTER;
//Laat de linken zien
$queryLink = 'SELECT cat_id,link_url FROM linken WHERE cat_id = '. $rowNaam->cat_id .' ORDER BY link_url LIMIT 0,10';
$resultLink = mysql_query($queryLink) or die ("Sorry maar ik kan de linken van de categorie niet weergeven, probeer het later opnieuw.");
if(mysql_num_rows($resultLink) > 0) // Er is iets gevonden
    {
$i = 0;
        while($i < 10 AND $rowLink = mysql_fetch_object($resultLink))
        {

            $i++;
    echo '<tr>';
    echo '<td class="link">-'. $rowLink->link_url.'';
    echo '</td>';
    echo '</tr>'.ENTER;
    }
}


        echo '<tr>';
        echo '<td class="meer">';

        echo '<a href="http://www.winkeltop10.nl/index2.php" target="_parent"><font class="meer">Terug</font></a>';
        
        echo '</td>';
        echo '</tr>';
        }

        

        echo '</table>'.ENTER;
    
}

?>
 

15/09/2006 09:30:00
Quote Anchor link
Wie heeft er zin en tijd om mij hier mee te helpen?

De testpagina is nu dit geworden:
Testpagina

EDIT: Je kunt het beste testen met Kleding Kinderen
Gewijzigd op 01/01/1970 01:00:00 door
 
Robert Deiman

Robert Deiman

15/09/2006 11:22: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
<?php
$i
= 0;
        while($rowLink = mysql_fetch_object($resultLink))
        {

            $i++;
            echo '<tr>';
            echo '<td class="link">-'. $rowLink->link_url.'';
            echo '</td>';
            echo '</tr>'.ENTER;
            if($i % 10 == 0 && $i < mysql_num_rows($resultLink)){
            //wanneer er 10 items in de tabel staan, en het totaal aantal items nog niet is bereikt
                //Link "Terug" weergeven.

                echo '<tr>';
                echo '<td class="meer">';
                echo '<a href="http://www.winkeltop10.nl/index2.php" target="_parent"><font class="meer">Terug</font></a>';
                echo '</td>';
                echo '</tr>';
                // tabel sluiten, en nieuwe maken
                echo '</table><table width="185" align="left" class="tabelborder" cellspacing="0" cellpadding="0">';
                echo '<tr>';
                echo '<td class="kopje">'.$rowNaam->cat_naam.'</div>' ;
                echo '</td>';
                echo '</tr>'.ENTER;
                }

            elseif($i == mysql_num_rows($resultLink)){
                //wanneer het totaal aantal items is bereikt
                echo '</table>'.ENTER;
                }
                  }
    }
}

?>


Zoiets? (ik heb het overigens niet getest, en gewoon uit mijn hoofd gedaan)
 

15/09/2006 11:32:00
Quote Anchor link
Nee het werkt niet.

Trouwens op deze vervolgpagina mag er gewoon overal de link "terug" onderin de kolom staan hoor.

Alleen op de eerste index.php moet het wel op de manier als jij hebt gedaan.

Ik heb 10 even aangepast naar 8 omdat er nog niet zoveel linken in de database zitten. Maar hij maakt geen nieuwe tabel aan.
 
Robert Deiman

Robert Deiman

15/09/2006 11:37:00
Quote Anchor link
Weet je het zeker Elsy, ik zie wel een 2e tabel, met daarin een paar links.
Heb je wel de while lus zelf ook aangepast, zoals in mijn voorbeeld?

Afbeelding

Edit:

Nu zet die in elke, behalve de laatste tabel de link: terug, om het ook in de laatste te zetten verander dan de code in deze elseif functie naar deze:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
elseif($i == mysql_num_rows($resultLink)){
                //wanneer het totaal aantal items is bereikt
                echo '<tr>';
                echo '<td class="meer">';
                echo '<a href="http://www.winkeltop10.nl/index2.php" target="_parent"><font class="meer">Terug</font></a>';
                echo '</td>';
                echo '</tr>';
                echo '</table>'.ENTER;
                }

?>

Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
 

15/09/2006 11:39:00
Quote Anchor link
Nou, ja zeg, dat is vreemd, nu doet hij het wel!
 

15/09/2006 11:40:00
Quote Anchor link
Ik weet al wat het was.
In de code stond nog bij terug: index2.php

Ik werk nu gewoon met index.php :)
 

Pagina: 1 2 3 4 5 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.