SQL - Join - Meerdere gegevens ophalen
ik gebruik volgende query om alles te weergeven op een dynamische site.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$sql_get_website = "SELECT w.sitenaam, w.template, p.id, p.inhoud, p.paginanaam
FROM websites AS w
RIGHT JOIN website_paginas AS p
ON p.id_website = w.id
WHERE w.id = '".mysql_real_escape_string($_GET['id'])."'
";
FROM websites AS w
RIGHT JOIN website_paginas AS p
ON p.id_website = w.id
WHERE w.id = '".mysql_real_escape_string($_GET['id'])."'
";
Nu lopen er enkele zaken fout:
- Het lukt met niet om in het menu aan te duiden welke pagina actief is
- Indien de pagina niet in de url staat moet de eerste pagina van de site geladen worden (nu laad de laatste)
- Als ik het vorige probleem dan oplos met ORDER BY id DESC dan staat het menu in de verkeerde volgorde
Indien de pagina wel is meegegeven in de url word volgend stukje uitgevoerd:
Code (php)
1
2
3
4
2
3
4
if(isset($_GET['pagina']))
{
$sql_get_website .= "AND p.id = '".mysql_real_escape_string($_GET['pagina'])."'";
}
{
$sql_get_website .= "AND p.id = '".mysql_real_escape_string($_GET['pagina'])."'";
}
Maar dan bestaat het menu uit alleen de pagina waar het id gelijk aan is. Ik moet dus de inhoud van 1 specifieke pagina ophalen maar wel alle paginanamen en id's voor het menu.
Wie kan helpen? (online voorbeeld)
Alvast bedankt.
Gewijzigd op 03/06/2011 12:38:46 door Jasper DS
Quote:
- Het lukt met niet om in het menu aan te duiden welke pagina actief is
Als je de linkjes genereerd middels een while-lus kun je er toch een if-statement in zetten om te kijken of de ID (_GET['id'], uit de url) overeen komt met de ID die je op dat moment wil uitprinten?
Code (php)
Quote:
- Indien de pagina niet in de url staat moet de eerste pagina van de site geladen worden (nu laad de laatste)
Dat kun je toch doen met het stukje wat je laat zien? Maar dan met een else-clause er achter die als ID de eerste pakt wanneer $_GET['pagina'] niet geset is.
Over het stukje met het sorteren, als dingen elkaar in de weg zitten dan zul je het denk ik gewoon met losse query's moeten oplossen. Je kunt niet altijd alles in 1 query selecteren.
Quote:
Maar dan bestaat het menu uit alleen de pagina waar het id gelijk aan is. Ik moet dus de inhoud van 1 specifieke pagina ophalen maar wel alle paginanamen en id's voor het menu.
Precies wat ik iets hier boven schreef, wat weerhoudt je er van om dit in 2 query's op te lossen?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
if(!isset($_GET['pagina']))
{
$pagina = $row_get_website['id'];
}
else
{
$pagina = $_GET['pagina'];
}
$menu .= '<li><a href="index.php?id='.$_GET['id'].'&pagina='.$id.'"';
if($id == $pagina)
{
$menu .= 'class="active"';
}
$menu .= '><span class="l"></span><span class="r"></span><span class="t">'.$row_get_website['paginanaam'].'</span></a></li>';
}
?>
if(!isset($_GET['pagina']))
{
$pagina = $row_get_website['id'];
}
else
{
$pagina = $_GET['pagina'];
}
$menu .= '<li><a href="index.php?id='.$_GET['id'].'&pagina='.$id.'"';
if($id == $pagina)
{
$menu .= 'class="active"';
}
$menu .= '><span class="l"></span><span class="r"></span><span class="t">'.$row_get_website['paginanaam'].'</span></a></li>';
}
?>
maar ik zal dit dan toch in meerdere query's doen.