dimdal Skrevet 7. juli 2004 Skrevet 7. juli 2004 Hei, Driver å lærer meg litt SQL + PHP her nå, og lurer på følgende; Jeg har altså et PHP-script som viser 6 rader fra en database: <?php $count = 1; $db = mysql_connect("localhost", "root", ""); mysql_select_db("users", $db); $result = mysql_query("SELECT * FROM users3",$db); while($myrow = mysql_fetch_array($result)) { if($count < 6){ $count++; echo "<div id=\"user\"><b>Navn:</b>".$myrow["navn"]." <br><b>Nick:</b>".$myrow["nick"]." <br><b>Password:</b>".$myrow["password"]."</div><br><br>"; } } ?> Da får jeg altså vist de første 6 radene i tabellen min, i dette tilfellet "brukere", men nå vil jeg altså ha en link som sier noe sånt som "Neste side" og da kan liste opp de 6 neste i tabellen. Er sikker på at dette har noe med id på radene å gjøre, men det eneste jeg vet jeg kan bruke er WHERE id=$id der hvor jeg henter ut data fra tabellen.. men denne vil jo da bare hente ut èn rad, hvis ikke det er en måte som gjør at $id kan være en "range" med tall. Noen som har noen tips her? Håper folk skjønner hva jeg mente..
LoS Skrevet 7. juli 2004 Skrevet 7. juli 2004 (endret) Du burde se litt på LIMIT som brukes i mysql. LIMIT 0,6 på slutten av spørringen din vil gjøre slik at det ikke kommer fram mer enn 6 rader fra tabellen. Gjør i tillegg scriptet ditt raskere og, selv om jeg tviler på at du vil merke noe til det før du får en større brukermengde som bruker scriptet ditt Finner faktiskt en del "how-to's" ang. dette på nettet. edit: LIMIT 7,12 vil liste ut fra og med rad 7 til og med rad 12. Som ett lite hint Endret 7. juli 2004 av LoS
dimdal Skrevet 7. juli 2004 Forfatter Skrevet 7. juli 2004 <?php $db = mysql_connect("localhost", "root", ""); mysql_select_db("nyheter", $db); $result = mysql_query("SELECT * FROM nyheter LIMIT $from,4",$db); while($myrow = mysql_fetch_array($result)) { echo "<b>".$myrow["overskrift"]."</b><br><hr>".$myrow["nyhet"]."<br>".$myrow["forfatter"]."<br><br>"; echo "<a href=\"delete_news.php?id=".$myrow[id]."\">Delete</a>"; echo "<br><br>"; } $from = $from+5; echo "<a href=\"admin_news.php?from=$from\">Neste</a><br><br>"; ?> Oki, nå har jeg et script som kan vise de 4 neste hver gang jeg trykker på neste, men må nok sette en while loop rundt linja som genererer "neste"-linken, den skal jo ikke genereres når det ikke finnes flere rader i tabellen. Men akkurat dette er jeg veldig usikker på, hvordan skal jeg få til dette? Hvis noen kan peke meg på rett vei igjen så hadde det vært flott..
Torbjørn Skrevet 7. juli 2004 Skrevet 7. juli 2004 løsningen er i verste fall å kjøre to spørringer, en for å telle antall rader du ville fått uten limit, og en får å vise de du får. hvis du har en $from som så er innenfor totale antall rader, viser du ingen neste knapp. nyere mysqlversjoner kan rapportere hvor mange rader du ville fått uten limit.
Blib Skrevet 7. juli 2004 Skrevet 7. juli 2004 Hva med å telle opp totalt antall poster, antall poster som har blitt vist tidligere, og hvis "totalt - hittil" er lik 0 eller skal linken "Neste side" ikke vises?
dimdal Skrevet 7. juli 2004 Forfatter Skrevet 7. juli 2004 (endret) Hmm, går det ikke ann å få SQL til å telle antall rader i en tabell via en spørring ? Hmmm.. da må jeg på en måte sammeligne $from og verdien SQL gir ut fra en sånn telling.. Blib: ja det er noe sånt jeg tenker på.. Endret 7. juli 2004 av dimdal
Torbjørn Skrevet 7. juli 2004 Skrevet 7. juli 2004 select count(*) from blabla where ... og med samme where betingelser vil du kunne få ut antallet rader
LoS Skrevet 7. juli 2004 Skrevet 7. juli 2004 Kunne jo brukt mysql_num_rows og. Selv om det er noe tregere.
dimdal Skrevet 7. juli 2004 Forfatter Skrevet 7. juli 2004 Jeg skjønner forsåvidt hva som menes her, men selve utførelsen får jeg absolutt ikke til, har prøvd og prøvd nå, men finner liksom ikke helt "ideen" for å få dette til..
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå