Probleem met checken van laatste record in DB.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bart B

Bart B

24/03/2011 13:58:26
Quote Anchor link
Ha,

Ik zit in de knoop. Waarschijnlijk zie ik iets simpels over het hoofd, ik zoek de query om de laatst toegevoegde record van de db naar voren te halen.

Stukkie code wat ik hiervoor dacht te gebruiken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$sql = mysql_query("SELECT `nummer` FROM arrow ORDER BY id LIMIT 1") or die(mysql_error());
$check = mysql_fetch_array($sql);


Maar dat werkt niet. Als ik echo $check; gebruik komt er alleen Array te staan, maar geen data, terwijl er wel wat in de DB staat.

Iemand een idee?
Gewijzigd op 24/03/2011 13:58:56 door Bart B
 
PHP hulp

PHP hulp

08/09/2024 02:16:58
 
Dennis meijer

dennis meijer

24/03/2011 13:59:57
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$sql = mysql_query("SELECT `nummer` FROM arrow ORDER BY id DESC") or die(mysql_error());
$check = mysql_fetch_array($sql);


Als je nu echo $check doet zal die het moeten doen.:P of ik zit nu verkeerd te denken.
 
Bart B

Bart B

24/03/2011 14:01:39
Quote Anchor link
Maar hier gebruik je niet limit 1. Ik wil echt op aller laatste toegevoegde record.

EDIT: Het lijkt te werken.. :). ff checken wat ie doet in een uurtje als cron :)
Gewijzigd op 24/03/2011 14:02:46 door Bart B
 
Dennis meijer

dennis meijer

24/03/2011 14:02:48
Quote Anchor link
Ja als je die $check niet door een echo haalt zal die alleen de laatste weergeven.
 
- SanThe -

- SanThe -

24/03/2011 14:04:24
Quote Anchor link
Bart B op 24/03/2011 13:58:26:
Als ik echo $check; gebruik komt er alleen Array te staan, maar geen data, terwijl er wel wat in de DB staat.


Dat is basic sql kennis.
Je fetched een array dus is het logisch dat er in $check een array zit.

echo $check['veldnaam'];

PS: Bovenstaande antwoorden van Dennis slaan nergens op.
Gewijzigd op 24/03/2011 14:06:47 door - SanThe -
 
Dennis meijer

dennis meijer

24/03/2011 14:05:01
Quote Anchor link
Als je in een tekst bijvoorbeeld die $check 1x laat zien zal die alleen de allereerste waarde laten zien uit de database.

En omdat de query wat ik gaf omgekeerd alle waardes laat zien zul je alleen de hoogste id zien.

Zodra je $check door een while() loop gaat halen zal die bij de laatste beginnen en bij de eerste eindigen.

Hoop dat het een beetje duidelijk is zo.
 
Arjan -

Arjan -

24/03/2011 16:35:26
Quote Anchor link
Dennis meijer op 24/03/2011 14:05:01:
Als je in een tekst bijvoorbeeld die $check 1x laat zien zal die alleen de allereerste waarde laten zien uit de database.

En omdat de query wat ik gaf omgekeerd alle waardes laat zien zul je alleen de hoogste id zien.

Zodra je $check door een while() loop gaat halen zal die bij de laatste beginnen en bij de eerste eindigen.

Hoop dat het een beetje duidelijk is zo.


Heel slecht voorbeeld!

Op jouw manier haal je dus eerst alle gegevens uit de database. Vervolgens fetch je de gegevens. En daarna gebruik je alleen de gegevens uit het laatste record? Beetje overkill he? En heel erg zinloos. Als je reageert moet je wel het goede voorbeeld geven en niet de topicstarter verkeerde methoden aanleren.

Als je alleen de gegevens nodig hebt van het laatste record dan moet je gewoon "ORDER BY id DESC LIMIT 1" gebruiken! (id kan uiteraard ook een datum veld zijn of iets dergelijks)
Gewijzigd op 24/03/2011 16:39:32 door Arjan -
 
Maikel  B

Maikel B

24/03/2011 16:41:35
Quote Anchor link
$sql = mysql_query("SELECT `nummer` FROM arrow ORDER BY id DESC LIMIT 1") or die(mysql_error());

echo "Hoogste waarde is ". $sql;


Dit zou volgens mij ook gewoon moeten werken
En je kan beter geen or die() gebruiken maar een goede foutafhandeling
 
Arjan -

Arjan -

24/03/2011 16:42:55
Quote Anchor link
Maikel B op 24/03/2011 16:41:35:
$sql = mysql_query("SELECT `nummer` FROM arrow ORDER BY id DESC LIMIT 1") or die(mysql_error());

echo "Hoogste waarde is ". $sql;


Dit zou volgens mij ook gewoon moeten werken
En je kan beter geen or die() gebruiken maar een goede foutafhandeling


Dit werkt niet, want je zal het resultaat altijd moeten fetchen om deze uit te kunnen lezen.
 
Gerhard l

gerhard l

24/03/2011 16:45:01
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$query
= "SELECT nummer FROM arrow ORDER BY id LIMIT 1";
$sql = mysql_query($query);
if($sql){
    while ($row = mysql_fetch_assoc($sql)) {
            echo $row['nummer'];
    }
}

else{
    echo 'error';
}

?>

geen or die, geen backticks
 
Noppes Homeland

Noppes Homeland

24/03/2011 17:28:56
Quote Anchor link
Een laatst toegevoegd record kan je alleen achterhalen als je registreed op welk moment dat dan geschied is.

Een sortering op id wat hoogst waarschijnlijk sequentieel gedefineerd staat, daarvan kan je niet zeggen dat het hoogste nummertje het laatst toegevoegde record is.

Dus kappen met die rare fratsen om te sorteren op een niets zeggend iets.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.