Hayer Skrevet 21. april 2007 Del Skrevet 21. april 2007 Hei! hvordan printer jeg ut siste posten i databasen? Lenke til kommentar
Runar0 Skrevet 21. april 2007 Del Skrevet 21. april 2007 Du må nok utdype deg litt meir. Siste posten i eit forum? Lenke til kommentar
Anders Moen Skrevet 21. april 2007 Del Skrevet 21. april 2007 Tror han mener det siste som har blitt lagt til i databasen... Hvis du har et felt kalt id, som er primary key og har auto_increment, så kan du bruke denne: SELECT * FROM tabell ORDER BY id DESC LIMIT 1 Lenke til kommentar
grimjoey Skrevet 21. april 2007 Del Skrevet 21. april 2007 (endret) SELECT * FROM tabell ORDER BY * DESC LIMIT 1; ? edit: funka ikke. blir nok id i stedet for * annen løsning er $sql = 'SELECT * FROM tabell;' $res = mysql_query($sql); $rows = mysql_fetch_rows($res); echo $rows[count($rows) - 1]; Endret 21. april 2007 av grimjoey Lenke til kommentar
Ståle Skrevet 21. april 2007 Del Skrevet 21. april 2007 Men losningen til Anders er vel raskere? Lenke til kommentar
Peter Skrevet 21. april 2007 Del Skrevet 21. april 2007 (endret) Men losningen til Anders er vel raskere? 8436792[/snapback] Den er den eneste riktige måten å gjøre det på! grimjoey, jeg er rimelig sikker på at din ikke funker i det hele tatt. Hvorfor? mysql_fetch_rows eksisterer ikke. Endret 21. april 2007 av Nazgul Lenke til kommentar
Ståle Skrevet 21. april 2007 Del Skrevet 21. april 2007 Kanskje han mente mysql_fetch_row() Men allikevel blir det litt feil :o Lenke til kommentar
Peter Skrevet 21. april 2007 Del Skrevet 21. april 2007 Kanskje han mente mysql_fetch_row() Men allikevel blir det litt feil :o 8438965[/snapback] Antakelig, men uansett er tankgangen der feil. I beste fall, ville han fått ut siste kolonne av første rad i resultatsettet. Lenke til kommentar
grimjoey Skrevet 22. april 2007 Del Skrevet 22. april 2007 (endret) ... while($row = mysql_fetch_row($res)) {} print_r($row); det blir den siste raden vel. sier ikke at koden er raskere. Endret 22. april 2007 av grimjoey Lenke til kommentar
Gjest Slettet+142 Skrevet 22. april 2007 Del Skrevet 22. april 2007 Hayer, hvis du har et felt i tabellen din som benytter seg av auto_increment, bør du bruke Anders-Moen sin kode. - ellers kan du bruke grimjoey sin kode. ulempen med grimjoey sin kode, er at hvis tabellen har mange rader, vil den koden bruke flere resurser og derfor bruke lenger tid. Lenke til kommentar
Ernie Skrevet 22. april 2007 Del Skrevet 22. april 2007 (endret) Hayer: Hva er det du skal ha? IDen til siste raden på tilkoblingen? Isåfall har vi mysql_insert_id() (forutsetter auto_increment på ID) Hvis det er siste IDen helt generelt du vil ha så SELECT MAX(id) AS siste FROM tabell Skal du ha hele raden kan du bruke, som tidligere nevnt, SELECT * FROM tabell ORDER BY id DESC LIMIT 1 ellers så kan man også bruke SELECT * FROM tabell WHERE id = (SELECT MAX(id) FROM tabell) LIMIT 1 ...while($row = mysql_fetch_row($res)) {} print_r($row); det blir den siste raden vel. sier ikke at koden er raskere. 8441348[/snapback] Ikke bare fungerer ikke koden ($row vil alltid være false), men følger man logikken er det usikkert om du faktisk får ut siste raden, og ikke minst er det her direkte hårreisende koding. Endret 22. april 2007 av Ernie Lenke til kommentar
Hayer Skrevet 22. april 2007 Forfatter Del Skrevet 22. april 2007 Prøver å bruke Anders sin løsning..men hvordan printer jeg det ut? Skulle gjerne har noe som lignet på f.eks Navn - Tlf - Epost men får det ikke helt til Lenke til kommentar
Gjest Slettet+142 Skrevet 22. april 2007 Del Skrevet 22. april 2007 (endret) du skal ha siste "post" ut ifra tabellen. ok. tabellen har feltene "navn", "tlf" og "epost". men. har du et felt "id" eller iaf. et felt som benytter seg av auto_increment? <?php mysql_connect("host", "user", "pass"); mysql_select_db("database"); $sql = "SELECT * FROM tabell ORDER BY id DESC LIMIT 1"; $q = mysql_query($sql); if(mysql_num_rows($q)!=1) die("Feil i med SQL: ".mysql_error()); $r = mysql_fetch_assoc($q); echo 'Navn: '.$r["navn"]; echo '<br>'; echo 'Telefon: '.$r["tlf"]; echo '<br>'; echo 'Epost: '.$r["epost"]; ?> Endret 22. april 2007 av Slettet+142 Lenke til kommentar
Ståle Skrevet 22. april 2007 Del Skrevet 22. april 2007 Hva heter feltene og tabellen du bruker i databasen? $sql = mysql_fetch_assoc(mysql_query("SELECT * FROM tabell ORDER BY id DESC LIMIT 1")); echo $sql['navn'] .' - '. $sql['tlf'] .' - '. $sql['epost']; Lenke til kommentar
The_Lozer Skrevet 22. april 2007 Del Skrevet 22. april 2007 (endret) prøvde ut anders sin kode og den funka fint $sql = mysql_query("SELECT * FROM tabell ORDER BY id DESC LIMIT 1"); while($siste = mysql_fetch_array($sql)) { echo "{$siste['name']}"; } Endret 22. april 2007 av The_Lozer Lenke til kommentar
Ståle Skrevet 22. april 2007 Del Skrevet 22. april 2007 trenger ikke while() nar du bare skal printe ut 1 rad. Lenke til kommentar
Anders Moen Skrevet 22. april 2007 Del Skrevet 22. april 2007 Ståle Hva bruker man da? Bruker man noe sånn der foreach eller noe sånt? Har bare sett noen bruke noe med for og each, eller noe lignende.. Lenke til kommentar
Ståle Skrevet 22. april 2007 Del Skrevet 22. april 2007 (endret) $sql = mysql_query("SELECT * FROM tabell ORDER BY id DESC LIMIT 1"); $siste = mysql_fetch_assoc($sql); echo $siste['name']; =:o edit; det er like greitt a bruke fetch_assoc som fetch_array($sql, MYSQL_ASSOC) Endret 22. april 2007 av Ståle Lenke til kommentar
grimjoey Skrevet 22. april 2007 Del Skrevet 22. april 2007 (endret) ok... nå har jeg faktisk testet den. $qry = "select * from tabell;"; $res = mysql_query($qry); while($row = mysql_fetch_row($res)) { $wor = $row } print_r($wor); edit: forresten: $qry = 'SELECT * FROM tabell ORDER BY 1 DESC LIMIT 1;'; .... Endret 22. april 2007 av grimjoey Lenke til kommentar
nree Skrevet 22. april 2007 Del Skrevet 22. april 2007 Som Ståle sier, ingen poeng i å bruke while når man skal benytte seg av én rad! Man tar rett og slett bare det som er inni while () og setter ut i koden. While brukes kun når noe skal gjentas flere ganger, f.eks printe flerer rader.. 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å