SQL - Join - Meerdere gegevens ophalen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jasper DS

Jasper DS

03/06/2011 12:36:37
Quote Anchor link
Beste,

ik gebruik volgende query om alles te weergeven op een dynamische site.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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'])."'
                    ";


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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
if(isset($_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
 
PHP hulp

PHP hulp

05/12/2020 03:33:56
 
Erik van de Locht

Erik van de Locht

03/06/2011 16:17:36
Quote Anchor link
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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
while(lus voorwaarde of mysql_fetch_) {
    echo ($_GET['id'] == $id_van_pagina_uit_db ? 'actieve pagina' : 'niet actieve pagina');
}
?>


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?
 
Jasper DS

Jasper DS

03/06/2011 16:26:27
Quote Anchor link
Voor het menu deed ik het zo:
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
<?php
if(!isset($_GET['pagina']))
    {

        $pagina = $row_get_website['id'];
    }

    else
    {
        $pagina = $_GET['pagina'];
    }

        
        
    $menu .= '<li><a href="index.php?id='.$_GET['id'].'&amp;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.
 



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.