nieuwste record uit database

Status
Niet open voor verdere reacties.

familiegennip

Gebruiker
Lid geworden
8 dec 2002
Berichten
141
hallo..

Ik wil graag bij elke refresh dat het nieuwste record van de table die ik heb geselecteerd te zien krijg. Maar als een record wordt toegevoegd wordt ie automatisch onderaan de table erbij gezet dus ik kan niet 1 rec ord selecteren zodat ie altijd de eerste pakt. want hih zet de nieuwe onderop. Heeft iemand hier een oplossing voor?

Thnxs :thumb:
 
tja, ik kan wel een manier bedanken....

als eerst moet je deze code toevoegen aan de tabel:
"ID int(20) unsigned not null auto_increment"
dit zorgt ervoor dat elk record een eigen getal heeft, en het laatste record het hoogste getal.

nu moet het script kijken wat het 'hoogste' getal is en dat haal je op.
PHP:
<?PHP
// het ophalen van het ID van het laatste record

$result = mysql_query("SELECT COUNT(*) FROM *TABEL NAAM*") or die('het werkt niet' . mysql_error());

$hoogste_getal = mysql_fetch_row($result);

// het ophalen van de gegevens van het laatste record.
$CombiCheckQ2 = mysql_query("SELECT *DATA1*(,*DATA2*, enz.) FROM *TABELNAAM* WHERE ID = '".$hoogste_getal[0]."' ") or die('het werkt niet' . mysql_error());

$data = mysql_fetch_array($CombiCheckQ); 
$data1 = $data[*Data1*];
$data2 = $data[*Data2*];

?>

dit werkt (bij mj in ieder geval...) :)

JB'tje :thumb:
 
tja, je moet uiteraard wel de dingen tussen ** invullen :p (en dan de ** verweideren)
Als je een tabel hebt aangemaakt, en er bijvoorbeeld een kolom hebt genaamd 'info' dan moet je voor die *Data1*, 'info' invullen, dan word de informatie uit 'info' gehaald bij het laatste record.

als je meerdere kolommen hebt, dan kun je *Data2* ook invullen, anders gooi je dat gewoon weg :)
kijk hier en hier

JB'tje
 
Het kan simpeler..
PHP:
$query = mysql_query("SELECT * FROM tabel ORDER BY id DESC")
Je moet dan wel een uniek veld hebben (genaamd "id") en die dus steeds doorteld (zie 1e post JB'tje).

Daarna kan je gewoon 1 rij ophalen.. en klaar is kees :D
 
jep, je hebt gelijk.... ff niet aan gedacht :thumb:

JB'tje
 
Geplaatst door aaajeetee
Het kan simpeler..
En correcter, bij de manier van JB'tje is het vereist dat elke rij in de tabel moet blijven bestaan.
PHP:
$query = mysql_query("SELECT * FROM tabel ORDER BY id DESC")

Je moet dan wel een uniek veld hebben (genaamd "id") en die dus steeds doorteld (zie 1e post JB'tje).
Als je daar LIMIT 0,1 (of LIMIT 1, wat je maar wil) aan toevoegt, dan wordt de query in de meeste gevallen ook nog wat sneller uitgevoerd :).
 
Simpel

je moet je 1e veld op auto_incedement (ofzo, ***naam) zetten.

dan kan je met je insert gewoon '' voor het 'id' geven en maakt mysql er automatisch een ID van, met de functie mysql_insert_id() kan je uitlezen welk ID gegenereerd is voor je script.
 
PHP:
$query = mysql_query("SELECT * FROM tabel ORDER BY id DESC")

dit laat die nog steeds alle record zien... aangezien hij de laatste record van zijn table wilt hebben moet je LIMIT 1 bijzetten om te zorgen dat hij 1 record laat zien.

dus dan krijg je dit:
PHP:
$query = mysql_query("SELECT * FROM tabel ORDER BY id DESC LIMIT 1")
 
Geplaatst door Initial1
PHP:
$query = mysql_query("SELECT * FROM tabel ORDER BY id DESC")


dit laat die nog steeds alle record zien... aangezien hij de laatste record van zijn table wilt hebben moet je LIMIT 1 bijzetten om te zorgen dat hij 1 record laat zien.
Onzin, als je $query meteen fetched (dus zonder while-lus) krijg je maar één rij, door de ORDER BY is dit de laatste rij.
PHP:
$query = mysql_query("SELECT * FROM tabel ORDER BY id DESC") or die(mysql_error());
$rij = mysql_fetch_assoc($query);
Dit betekent echter niet dat die LIMIT erbij zetten niet verstandiger is.
Dit zorgt er namelijk voor dat zodra hij één rij tegengekomen is, hij stopt met het verzamelen van rijen, integendeel tot wanneer die LIMIT weggelaten wordt. Hierdoor wordt de query dus sneller uitgevoerd :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan