raar probleem met de limit
ik heb een ledenlijst (ik heb al 3 leden :D )
hij deed het goed.. maar ik heb bedacht om het uit te brijden zodat je maar 30 leden op een pagina kan zien.
dit is de code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$query = "SELECT gb_id, functie, clanID, power FROM gebruiker ORDER BY power DESC";
$result = mysql_query($query) or die ("kon de leden niet uit de database halen");
$start = (isset($_GET['n']) and is_numeric($_GET['n'])) ? $_GET['n'] * 30 - 29 : "";
$eind = (isset($_GET['n']) and is_numeric($_GET['n'])) ? $_GET['n'] * 30 : "";
$query .= ($start != "" and $eind != "") ? " LIMIT $start, $eind" : "";
$leden = mysql_query($query) or die ("kon de leden niet uit de database halen");
while ($row = mysql_fetch_array($leden)){
echo "<tr>";
echo "<td><a href=\"?p=profiel.php&g=" . $row['gb_id'] . "\">" . $row['gb_id'] . "</a></td>";
echo "<td>";
if($row['functie']== "hadmin"){echo "hulp-admin";} else{echo $row['functie'];}
echo "</td>";
echo "<td>" . $row['clanID'] . "</td>";
echo "<td>" . $row['power'] . "</td>";
echo "<td>attack</td>";
echo "</tr>";
}
mysql_free_result($result);
?>
$query = "SELECT gb_id, functie, clanID, power FROM gebruiker ORDER BY power DESC";
$result = mysql_query($query) or die ("kon de leden niet uit de database halen");
$start = (isset($_GET['n']) and is_numeric($_GET['n'])) ? $_GET['n'] * 30 - 29 : "";
$eind = (isset($_GET['n']) and is_numeric($_GET['n'])) ? $_GET['n'] * 30 : "";
$query .= ($start != "" and $eind != "") ? " LIMIT $start, $eind" : "";
$leden = mysql_query($query) or die ("kon de leden niet uit de database halen");
while ($row = mysql_fetch_array($leden)){
echo "<tr>";
echo "<td><a href=\"?p=profiel.php&g=" . $row['gb_id'] . "\">" . $row['gb_id'] . "</a></td>";
echo "<td>";
if($row['functie']== "hadmin"){echo "hulp-admin";} else{echo $row['functie'];}
echo "</td>";
echo "<td>" . $row['clanID'] . "</td>";
echo "<td>" . $row['power'] . "</td>";
echo "<td>attack</td>";
echo "</tr>";
}
mysql_free_result($result);
?>
maar als je in de url ?n=1 typt zie je alleen de laatste 2 leden
als je in de url ?n=0 typt zie je alle leden
en als je in de url ?n=2 typt zie je geen leden (dit is normaal :P )
maar ik snap dus niet wat ik fout doe..
kan iemand mij helpen??
gr. leroy
Gewijzigd op 01/01/1970 01:00:00 door Leroy Boerefijn
LIMIT 0, 30
bedankt ik zie mijn fout :D
Bij eind heb je " er tegenaan staan... dacht dat het misschien daar aan lag
@Kalle: Hij laat het toch zijn SQL doen?
@Leroy: Wees niet te bang om je fout ook te posten :)
Gewijzigd op 01/01/1970 01:00:00 door D B
klopt ik zag het alleen pas na 5x kijken, verschrikkelijk onduidelijke code.
Maarja wat ie tussen $query = en $query .= doet is niet nodig.
gewoon die limit erachter plakken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$query = "SELECT gb_id, functie, clanID, power FROM gebruiker ORDER BY power DESC";
$result = mysql_query($query) or die ("kon de leden niet uit de database halen");
$start = (isset($_GET['n']) and is_numeric($_GET['n'])) ? $_GET['n'] * 30 - 30 : "";
$eind = (isset($_GET['n']) and is_numeric($_GET['n'])) ? $_GET['n'] * 30 : "";
$query .= ($start != "" and $eind != "") ? " LIMIT $start, $eind" : "";
$leden = mysql_query($query) or die ("kon de leden niet uit de database halen");
while ($row = mysql_fetch_array($leden)){
echo "<tr>";
echo "<td><a href=\"?p=profiel.php&g=" . $row['gb_id'] . "\">" . $row['gb_id'] . "</a></td>";
echo "<td>";
$func = ($row['functie'] == "hadmin") ? "hulp-admin" : $row['functie'];
echo $func;
echo "</td>";
echo "<td>" . $row['clanID'] . "</td>";
echo "<td>" . $row['power'] . "</td>";
echo "<td>attack</td>";
echo "</tr>";
}
mysql_free_result($result);
?>
$query = "SELECT gb_id, functie, clanID, power FROM gebruiker ORDER BY power DESC";
$result = mysql_query($query) or die ("kon de leden niet uit de database halen");
$start = (isset($_GET['n']) and is_numeric($_GET['n'])) ? $_GET['n'] * 30 - 30 : "";
$eind = (isset($_GET['n']) and is_numeric($_GET['n'])) ? $_GET['n'] * 30 : "";
$query .= ($start != "" and $eind != "") ? " LIMIT $start, $eind" : "";
$leden = mysql_query($query) or die ("kon de leden niet uit de database halen");
while ($row = mysql_fetch_array($leden)){
echo "<tr>";
echo "<td><a href=\"?p=profiel.php&g=" . $row['gb_id'] . "\">" . $row['gb_id'] . "</a></td>";
echo "<td>";
$func = ($row['functie'] == "hadmin") ? "hulp-admin" : $row['functie'];
echo $func;
echo "</td>";
echo "<td>" . $row['clanID'] . "</td>";
echo "<td>" . $row['power'] . "</td>";
echo "<td>attack</td>";
echo "</tr>";
}
mysql_free_result($result);
?>
ik heb dus -30 inplaats van -29 gedaan :P
Gewijzigd op 01/01/1970 01:00:00 door Leroy Boerefijn
Want ik had al gekeken wat je $start en $eind terug gaven, en die gaven bij n=1 netjes 1 - 30 terug :)
@kalle, als je met onduidelijk bedoelt dat er geen commentaar bij zit.. dat komt omdat ik de code snap :D
En ik heb de code niet echt bekeken, maar die start en eind lijkt me niet echt nodig.
Je maakt een query aan, die voer je uit, vervolgens doe je niets met dat resultaat. Dan maak je de variabele $start en $eind, breid je de query die je gemaakt hebt uit met een LIMIT en ga je hem nog eens uitvoeren.
Dus onlogisch, maar vooral ook erg onoverzichtelijk. Zo las ik ook over de LIMIT heen, omdat je de query pas 5 regels verder uitbreidt dan waar je hem begonnen bent. En daartussen heb je informatie staan die niets met de syntax van de query op zich te maken hebben.
Precies het zelfde had ik Blanche.