Blib Skrevet 3. august 2003 Del Skrevet 3. august 2003 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
abcd423417984 Skrevet 3. august 2003 Del Skrevet 3. august 2003 tast inn følgende på slutten av setningen: ORDER BY felt hvis det ikke hjelper prøv: ORDER BY felt DESC og hvorfor i all verden vil du at auto increment skal synke igjen? da er jo hele vitsen med den borte... Lenke til kommentar
Blib Skrevet 3. august 2003 Forfatter Del Skrevet 3. august 2003 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
[kami] Skrevet 3. august 2003 Del Skrevet 3. august 2003 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
Neo Skrevet 3. august 2003 Del Skrevet 3. august 2003 Om jeg ikke tar helt feil, så er det vel kanskje mulig å ta en databaseoptimalisering slik at man blir kvitt de store mellomrommene mellom tallene.. (1,2,3,7,8,9 -> 1,2,3,4,5,6) Lenke til kommentar
abcd423417984 Skrevet 3. august 2003 Del Skrevet 3. august 2003 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
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å