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


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

}
}
?>
longtime no c elsy :)

kan je even schematisch je doel weergeven

| naam | adres |
-------------------
| naam | adres |


zoiets, volgens mij is het namelijk puur je tabelopbouw
| 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.
Wie heeft er even tijd om te kijken?
volgens mij is het zo:

<?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.
Nee, helaas, dit werkt ook niet.

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

?>
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...


<?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...
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....

<?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;
?>
[beetje off]
wel 500 complimenten voor de layouts die jij maakt zeg!
Die zijn echt gaaf!
[/beetje off]
[off topic]Thanks ! ga er helemaal van blozen [/off topic]
Elsy schreef op 13.09.2006 21:23
[off topic]Thanks ! ga er helemaal van blozen [/off topic]

Staat je best goed...;)

Reageren