Comment récuperer la dernière id d'une table?

Comment récuperer la dernière id d’une table?

J’ai un système de news ou les dites news ont chacune leur id (logique)

J’aimerais pouvoir afficher juste la dernière news dans une partie de mon site…

J’ai tenté mysql_insert_id() mais ca me retourne la valeur 0…

ps: je suis un nOOb en php :stuck_out_tongue:

function getlastnewsid($newsid)
{
$sql = mysql_query(‘SELECT MAX(newsid) FROM news’);
$result = $this->select($sql);
return $result;
}

Est ce correct?

SELECT * FROM news
ORDER BY newsid DESC
LIMIT 1

function lastnewsid($newsid)
{
$sql = “SELECT * FROM news ORDER BY newsid DESC LIMIT 1”;
$result = $this->select($sql);
return ($result+1);
}

Bon j’ai écris ca, la fonction en haut fonctionne bien merci beaucoup…

Par contre quand j’appelle la fonction dans mon fichier final:

$lastnewsid = $db->lastnewsid($newsid);

le navigateur me met: Fatal error: Call to undefined function: lastnewsid()

PS: j’ai dis que j’étais un nOOb :slight_smile:

en fait le resultat est Array

Je vois pas… Pourtant dans phpMyAdmin tout va bien…

Bon j’ai fait plus simple…

$last = mysql_query(“SELECT MAX(newsid) FROM news”);

echo $last;

me sort : Resource id #7

Normallement le résultat c’est 3 et dans phpMyAdmin ca marche…

Ce n’est pas le navigateur mais php, et ensuite $db->… implique que ta fonction (ou variable) soit une méthode/propriété d’un object de classe Database.

Soit tu fous ta fonction lastnewid dans ta classe Database, soit tu met ta fonction en dehors de toute classe.

Je l’ai sorti pour tester, j’ai mis la fonction vraiment à l’arrache là dans mon fichier qui doit l’afficher et ca devrait marcher !

$last = mysql_query(“SELECT MAX(newsid) FROM news”);

echo $last;

Dans phpMyAdmin : 3 nickel

en dehors : Resource id #7 de je sais pas où…

C’est ça :

$lastnewsid = $db->lastnewsid($newsid);

ça ne peut pas fonctionner si la fonction lastnewsid n’est pas définie dans la classe de l’objet $db.

$last est la ressouce utilisé pour accéder au contenu de la requete
tu dois faire mysql_fetch_array() ou autre pour accéder au contenu

Sinon c’est mysql_insert_id après un INSERT.

dans ma page j’ai ca :

J’ai pas continué pour faire simple…

et dans mon fichier NewsSql.inc.php :

Voila… Je sais pas pkoi ca merdoit comme ca, je suis pas très doué faut dire (c’est très vieux maintenant pour moi).