Gå til innhold

slecte siste post i database å printe ut?


Anbefalte innlegg

Videoannonse
Annonse
Skrevet

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

Skrevet (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 av grimjoey
Skrevet (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 av Nazgul
Skrevet (endret)

...

while($row = mysql_fetch_row($res))

{}

print_r($row);

 

 

det blir den siste raden vel. sier ikke at koden er raskere.

Endret av grimjoey
Gjest Slettet+142
Skrevet

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.

Skrevet (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 av Ernie
Skrevet

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 :(

Gjest Slettet+142
Skrevet (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 av Slettet+142
Skrevet

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'];

Skrevet (endret)

prøvde ut anders sin kode og den funka fint :D

 

$sql = mysql_query("SELECT * FROM tabell ORDER BY id DESC LIMIT 1");

while($siste = mysql_fetch_array($sql))

{

echo "{$siste['name']}";

}

Endret av The_Lozer
Skrevet (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 av Ståle
Skrevet (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 av grimjoey
Skrevet

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

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