Gå til innhold

Vise oppgitte rows fra en SQL database


Anbefalte innlegg

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? :hmm:

 

Håper folk skjønner hva jeg mente..

Lenke til kommentar
Videoannonse
Annonse

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 av LoS
Lenke til kommentar

 <?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..

Lenke til kommentar

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.

Lenke til kommentar

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 av dimdal
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...