hoi iedereen,
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:
<?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);
?>
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
Laat sql het voor je doen.

LIMIT 0, 30
Ow ik was er ook mee bezig maar zag dat " LIMIT $start, $eind"

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 :)
@bierens
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.
haha ok hier is het nieuwe script:
<?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);
?>
ik heb dus -30 inplaats van -29 gedaan :P
Humz lag het daar aan??

Want ik had al gekeken wat je $start en $eind terug gaven, en die gaven bij n=1 netjes 1 - 30 terug :)

@bierens, had ik ook gedaan maar het moet dus 0 - 30 zijn :D
@kalle, als je met onduidelijk bedoelt dat er geen commentaar bij zit.. dat komt omdat ik de code snap :D
Onder andere, maar het gaat niet omdat je de code snapt, maar dat je het snel terug kan vinden wanneer je iets gaat aanpassen.

En ik heb de code niet echt bekeken, maar die start en eind lijkt me niet echt nodig.
Ikzelf vind het naast onduidelijk, ook nog eens erg onlogisch.

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.

Reageren