Gå til innhold

Snu rekkefølgen av en SQL-spørring...


Anbefalte innlegg

Jeg har følgende kode på siden min, for å printe ut innholdet i tabellen og ut på siden:

 


<?php



print ("<table>");



include("db.php");

$sql = mysql_query("SELECT * FROM innlegg WHERE id<'10' ");

$antall = mysql_num_rows($sql);



for ($i=0; $i<$antall; $i++) { 

$minsql = mysql_fetch_array($sql); 

$type = $minsql["type"]; 

$overskrift = $minsql["overskrift"]; 

}

print ("masse jall...");



print ("</table>");



?>

 

Problemet er at den henter ut det med id først, for så å fortsette nedover. Og når jeg legger til nye ting i den databasen får de et høyt id-nummer og kommer sist på siden. Hvordan kan jeg snu rekkefølgen?

 

Og hvordan kan jeg få auto_increment til å automatisk synke en verdi når jeg sletter innholdet i linjen ovenfor?

Lenke til kommentar
Videoannonse
Annonse
og hvorfor i all verden vil du at auto increment skal synke igjen? da er jo hele vitsen med den borte...

 

Si meg, hva er egentlig meningen med auto increment da? Såvidt jeg forstår er det for å markere rekkefølgen på "det i tablene", men hvis de kommer dettende som 1, 2, 3, 6, 7, 9 og slikt blir jo det feil..?

 

Og order by felt desc hjalp. Takker :)

Lenke til kommentar

Auto increment er _ikke_ for å gi rekkefølge på ting. Det er for at du skal slippe å tenkte på å gi primærnøkkelen en "gyldig" verdi om du bare skal dytte ting ut og inn fra en database (forum, gjestebok er typiske eksempler)

 

Om du vil komme til et bestemt element i databasen kan du bruke LIMIT og ODRDER BY .. (ASC/DESC) for å ordne dette.


SELECT * FROM innlegg ORDER BY ID DESC LIMIT 10

dette vil hente de 10 siste


SELECT * FROM innlegg ORDER BY ID ASC LIMIT 10

dette vil hente de første


SELECT * FROM innlegg ORDER BY ID DESC LIMIT 49,50

dette vil hente inlegg 50 (om det eksisterer)

 

 

for mer informasjon se www.mysql.com og dokumentasjon :)

Lenke til kommentar

poenget med auto increment er å gi hver rad en unik id. denne er ikke særlig unik hvis den varierer etter hvor mange rader du faktisk har.

 

hvis du vil ha ut en spesiell rad skriver du bare på slutten av spørringen

 

LIMIT 3,1

 

som vil hente ut 1 rad fra og med rad nr 3

 

Jeg tror heller dette er en løsning du bør ta en titt på.

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...