hulp bij gebruik LIMIT in SQL opdracht

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bertus Wikkerink

Bertus Wikkerink

16/11/2011 16:36:06
Quote Anchor link
veronderstel ik wil maar 5 namen per pagina laten zien op het scherm.
Ik gebruik een database en ik heb in die database wel 100 rijen gevuld met een naam.
Met de link "volgende>>" geef ik de nieuwe positie van de pointer door naar de pagina die de namen plaatst en waar het script staat dat de gegevens uit de database gehaalt worden.En die dan de volgende pagina met de volgende 5 namen moet laten zien.
Echter de namen staan in dezelfde database en hebben een andere rubriek_id (bv Jongesnamen een 1 als rubriek_id en meisjesnamen een 2 als rubriek_id).
De moeilijkheid is dat ik dan ook (in de link) tegelijk met de positie van de pointer ook de rubrieks_id moet doorgeven.

PS Ik snap dat het het makkelijkst is als ik voor de jongensnamen en voor de meisjesnamen aparte databases gebruik. Maar ik heb 1 database en gebruik in die database twee rubrieks_id's. En hoe doe je dat dan?

Bertus
Gewijzigd op 16/11/2011 16:37:25 door Bertus Wikkerink
 
PHP hulp

PHP hulp

08/05/2021 07:07:40
 
- SanThe -

- SanThe -

16/11/2011 16:40:19
Quote Anchor link
Wat is precies de vraag?
Hoe je twee dingen in een link meegeeft?
pagina.php?var1=xxxx&var2=yyyy&var3=zzzz
 
Bertus Wikkerink

Bertus Wikkerink

16/11/2011 16:55:50
Quote Anchor link
Dat is precies wat ik wil. Maar het werkt niet.
De linken die ik gebruik heb ik hier bijgevoegd:

$new_pos_next=$pos+$count;
if($new_pos_next>=$no_data){
$link_next="<font family='verdana' size='2'</font> Einde>>";
}else {
$link_next="<a class=\"volgende\" href=../pad naar deze pagina/naampagina.php?pos=" . $new_pos_next . ">Volgende >></a>";
}

$new_pos_prev=$pos-$count;
if($new_pos_prev<0){
$link_prev="<font family='verdana' size='2'</font><< Begin";
}else{
$link_prev="<a class=\"volgende\" href=../pad naar deze pagina/naampagina.php?pos=" . $new_pos_prev . "><< Vorige</a>";
}

Echter in de database haal ik de juiste gegevens op met behulp van een rubriek_id.
Deze rubriek_id is vanuit een andere pagina doorgegeven via $_GET.
Voor de eerste 5 artikelen werkt het en worden ze goed doorgegeven.
Maar bij de volgende 5 artikelen krijg ik de foutmelding dat de rubriek_id niet bekend is en dus de desbetreffende artikelen niet uit de database kunnen worden opgehaald.
Op de 1 of andere manier moet ik dus bovenstaande linken werkzaam maken zoals U beschreven hebt. Maar dat lukt mij niet.

Bertus



Toevoeging op 16/11/2011 16:58:29:

Op deze manier haal ik de gegevens op uit 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
<?php

//De inhoud
         $object_SQL="SELECT * FROM database
                      WHERE ..._id="
. $rubriek['..._id'] . "
                      LIMIT $pos,$count"
;
         $object_result=mysql_query($object_SQL);

         while($object=mysql_fetch_array($object_result)){

         //Nu komt weergave van pagina
         ......
        
}

?>



Bertus
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

16/11/2011 17:33:27
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
37
38
39
40
41
42
43
44
45
<?php
function getEntries($origin) {
    global $con, $adminmode;
    $sql = "SELECT * FROM guestbook ORDER BY isSticky DESC, postDate DESC LIMIT ". $origin . ", 5";
    $result = mysql_query($sql, $con);
    $data = '';
    while ($row = mysql_fetch_array($result)) {
        $data .= '<div class="gb_title"><div>'.$row['title'] . '</div>';
        if ($adminmode) {
            $data .= '<div style="float:right; margin-top: -24px;"><a href="#" onclick="gbEditItem(' . $row['id'] . ')">';
            $data .= '<img src="/images/edit_icon.png" border="0" title="Bewerken" alt="Bewerken" /></a>';
            $data .= '<a href="#" onclick="gbRemoveItem(' . $row['id'] . ')">';
            $data .= '<img src="/images/delete_trash_icon.png" border="0" title="Verwijderen" alt="Verwijderen"/></a></div>';
        }

        $data .= '</div>';
        $data .= '<div class="gb_msgbody" id="gbmsg' . $row['id'] . '">'.$row['msg'].'</div>';
        $data .= '<div class="gb_footer">Door <b>'.$row['senderName'].'</b> op '.date('d-m-Y H:i', strtotime($row['postDate'])).'</div>';
        $data .= '<div class="gb_spacer">&nbsp;</div>';
    }

    return $data;
}

$sql = "SELECT post_id FROM guestbook";
$rec = mysql_num_rows(mysql_query($sql, $con));
$pagenum = floor($rec / 5);
if ($rec % 5 > 0) {
    $pagenum += 1;
}

if (!isset($_GET['start'] || empty($_GET['start'])
    $origin = 0;
else
    $origin = $_GET['start'];
?>

html stuff
<?php
echo getEntries($start);
if ($pagenum > 1) {
    echo '<div class="paging"><ul>';
    for ($i=0; $i < $pagenum; $i++) {
        $page = $i + 1;
        $start = $i * 5;
        echo '<li><a href="/include/guestbook.php?start='.$start.'">'. $page . '</a>';
    }

    echo '</ul></div>';
}

?>
Gewijzigd op 16/11/2011 17:37:03 door Ger van Steenderen
 
Bertus Wikkerink

Bertus Wikkerink

22/11/2011 22:02:32
Quote Anchor link
Geachte heer van Steenderen,
ik heb geprobeerd om Uw script te volgen. Maar het is voor mij te hoog gegrepen.
Kunt U per kopje in Uw script uitleggen(met behulp van //) waar ik dat onderdeel van UW script in mijn script mee moet vergelijken?

Bij voorbaat dank!

Bertus Wikkerink

Hieronder een paar opmerkingen van mij toegevoegd.

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
<?php
//Is dit niet hetzelfde als: $_GET['rubriek_id'].
function getEntries($origin) {

    //Het global maken is anders als in mijn listing maar dan verliezen mijn linken hun waarde.
    global $con, $adminmode;
    
    //Het oproepen  met $origing is toch hetzelfde als bij mij met $_GET['rubriek_id']?
    $sql = "SELECT * FROM guestbook ORDER BY isSticky DESC, postDate DESC LIMIT ". $origin . ", 5";
    $result = mysql_query($sql, $con);
    $data = '';
    while ($row = mysql_fetch_array($result)) {

        //Vanaf hier ben ik de weg kwijt. Dit is voor mij te hoog gegrepen.
        $data .= '<div class="gb_title"><div>'.$row['title'] . '</div>';
        if ($adminmode) {
            $data .= '<div style="float:right; margin-top: -24px;"><a href="#" onclick="gbEditItem(' . $row['id'] . ')">';
            $data .= '<img src="/images/edit_icon.png" border="0" title="Bewerken" alt="Bewerken" /></a>';
            $data .= '<a href="#" onclick="gbRemoveItem(' . $row['id'] . ')">';
            $data .= '<img src="/images/delete_trash_icon.png" border="0" title="Verwijderen" alt="Verwijderen"/></a></div>';
        }

        $data .= '</div>';
        $data .= '<div class="gb_msgbody" id="gbmsg' . $row['id'] . '">'.$row['msg'].'</div>';
        $data .= '<div class="gb_footer">Door <b>'.$row['senderName'].'</b> op '.date('d-m-Y H:i', strtotime($row['postDate'])).'</div>';
        $data .= '<div class="gb_spacer">&nbsp;</div>';
    }

    return $data;
}

$sql = "SELECT post_id FROM guestbook";
$rec = mysql_num_rows(mysql_query($sql, $con));
$pagenum = floor($rec / 5);
if ($rec % 5 > 0) {
    $pagenum += 1;
}

if (!isset($_GET['start'] || empty($_GET['start'])
    $origin = 0;
else
    $origin = $_GET['start'];
?>

html stuff
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
echo getEntries($start);
if ($pagenum > 1) {
    echo '<div class="paging"><ul>';
    for ($i=0; $i < $pagenum; $i++) {
        $page = $i + 1;
        $start = $i * 5;
        echo '<li><a href="/include/guestbook.php?start='.$start.'">'. $page . '</a>';
    }

    echo '</ul></div>';
}

?>


Toevoeging op 22/11/2011 22:14:56:

Geachte SanThe,

dat wat U mij meegeeft is precies zoals ik denk dat de oplossing is. Maar mijn script weigert mee te werken.
Uw:
pagina.php?var1=xxxx&var2=yyyy&var3=zzzz
heb ik geprobeerd bij MIJN link (hierboven):
$link_next="<a class=\"volgende\" href=../pad naar deze pagina/naampagina.php?pos=" . $new_pos_next . ">Volgende >></a>";
En mijn link:
$link_prev="<a class=\"volgende\" href=../pad naar deze pagina/naampagina.php?pos=" . $new_pos_prev . "><< Vorige</a>";
Deze heb ik volgens Uw mededeling proberen te veranderen in:
$link_next="<a class=\"volgende\" href=../pad naar deze pagina/naampagina.php?pos=" . $new_pos_next . " & ". $_GET['rubriek_id'] . ">Volgende >></a>";
En in:
$link_prev="<a class=\"volgende\" href=../pad naar deze pagina/naampagina.php?pos=" . $new_pos_prev . " & ". $_GET['rubriek_id'] . "><< Vorige</a>";
Maar beide veranderingen hebben geen invloed.
Ik blijf de melding houden dat rubriek_id bij de tweede pagina met 5 artikelen
niet bekend is.
Wel wordt keurig de nieuwe pos(=positie van de pointer) doorgegeven.
Kunt U mij laten zien wat ik dan verkeerd doe? BV In de syntax.

Bertus Wikkerink
 
Obelix Idefix

Obelix Idefix

22/11/2011 22:23:05
Quote Anchor link
Ik zie zo snel nergens jouw code/script staan. Plaats aub tussen code-tags. Maakt het makkelijk vinden/leesbaarder.
Het script van Gert is bijna kant en klaar. Wat je moet aanpassen is de query (jouw tabelnaam, veldnamen, etc.).
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$link_prev="<a class=\"volgende\" href=../pad naar deze pagina/naampagina.php?pos=" . $new_pos_prev . " & ". $_GET['rubriek_id'] . "><< Vorige</a>";

Wat zie je in de broncode van je pagina staan als je je pagina opvraagt? Wordt daarin $new_pos_prev en rubriek_id wel goed weergegeven?

Haal die spaties rond & eens weg.
Gewijzigd op 22/11/2011 22:23:51 door Obelix Idefix
 
- SanThe -

- SanThe -

22/11/2011 22:34:02
Quote Anchor link
naampagina.php?pos=" . $new_pos_prev . " & ". $_GET['rubriek_id'] . ">

Ik zou hier géén spaties in gebruiken.
 
Bertus Wikkerink

Bertus Wikkerink

23/11/2011 17:21:01
Quote Anchor link
Voor Obelix en Idefix:
Dit is de code die ik gebruik voor de linken:
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
<?php
$new_pos_next
=$pos+$count;
if($new_pos_next>=$no_data){
$link_next="<font family='verdana' size='2'</font> Einde>>";
}
else {
$link_next="<a class=\"volgende\" href=../pad naar deze pagina/naampagina.php?pos=" . $new_pos_next . ">Volgende >></a>";
}


$new_pos_prev=$pos-$count;
if($new_pos_prev<0){
$link_prev="<font family='verdana' size='2'</font><< Begin";
}
else{
$link_prev="<a class=\"volgende\" href=../pad naar deze pagina/naampagina.php?pos=" . $new_pos_prev . "><< Vorige</a>";
}


Daarna ga ik over tot de weergave van de artikelen. Hiervoor haal ik de juiste artikelen op met behulp van $rubriek_id. En geef ik met behulp van $pos per pagina 5 artikelen weer:
//De inhoud
         $object_SQL="SELECT * FROM database
                      WHERE ..._id="
. $rubriek['..._id'] . "
                      LIMIT $pos,$count"
;
         $object_result=mysql_query($object_SQL);

         while($object=mysql_fetch_array($object_result)){

         //Nu komt weergave van pagina
         ......
        
}

?>



Voor SanThe:
ik heb mijn linken aangepast en krijg in de balk:
naampagina.php?pos=5&5
te zien.
Ook werken de html linken dan niet meer en krijg ik bij aanklikken van vorige of volgende of bij hoofdmenu niet meer de juiste pagina te zien.

Pos gebruik ik om de volgende 5 artikelen op een volgende pagina weer te geven.
Als ik niks wijzig aan mijn script, werkt pos correct en geeft de balk netjes de nieuwe pos weer.bv:
naampagina.php?pos=5
naampagina.php?pos=10
enz.
Bij vorige pagina telt ie ook netjes terug.
Alleen er staan geen artikelen op die pagina omdat ie zegt dat ie het rubriek_id niet herkend.

Bertus



Toevoeging op 23/11/2011 17:44:14:

Voor SanThe,
ik ben al weer verder aan het uitproberen.
Als ik de linken aangepast heb(zoals U voorstelde),
krijg ik nu op de volgende pagina waar de volgende 5 artikelen moeten staan:
naampagina.php?pos=5&5 te staan (als rubriek_id van die artikelen 5 is)
en
naampagina.php?pos=5&1 te staan (als rubriek_id van die artikelen 1 is)

Maar nog steeds de melding dat rubriek_id niet bekend is!

Bertus


Toevoeging op 23/11/2011 18:58:17:

EUREKA!!!
Het werkt!!!
SanThe had de oplossing. Nogmaals hartelijk dank!

naampagina.php?pos=5&5

moest alleen nog worden:
naampagina.php?pos=5&rubriek_id=5

Toen werkte het.

Nogmaals bedankt voor jullie hulp.

Groeten,

Bertus

Dit topic is hiermede gesloten.
Gewijzigd op 23/11/2011 17:23:11 door Bertus Wikkerink
 



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.