Création
d'entreprise
Posez votre question Signaler

[PHP/MySQL] Récupérer valeur MAX [Résolu]

roukmouth 24Messages postés 5 avril 2005Date d'inscription 10 mars 2010Dernière intervention - Dernière réponse le 23 mai 2012 à 00:23
Bonjour,
J'aimerai retrouver la valeur MAX des ID d'une base de données pour ensuite faire un calcul.
Voilà mon code :
$query = "SELECT MAX(lien_id) FROM liens GROUP BY lien_id ";
			$result = mysql_query ($query) or die ("Exécution de la requête impossible");
			$row = mysql_fetch_assoc($result);
			extract($row);


Lorsque je souhaite afficher $row j'obtiens "Array" alors que je souhaiterai afficher un nombre. Je comprends rien.
Aidez-moi SVP. Merci d'avance. Roukmouth...
Lire la suite 

[PHP/MySQL] Récupérer valeur MAX »

11 réponses
Réponse
+8
moins plus
RECUPERER LA VALEUR MAX()

Solution proposée par PHP-SCRIPT (impécable, nette et simple)

Exemples de requêtes permettant de récupérer le dernier id dans une table (à n'importe quel moment).

<?php
//--- Récupérer le dernier id dans une table ---//
//--- Les variables ---//
$tb="table";

//--- Une méthode ---//
$req1="select max(id) from $tb";
$res1=mysql_query($req1);
$idmax1=mysql_result($req1,0,"max(id)");
echo $idmax1;

//--- Une deuxième ---//
$req2="select id from $tb order by id desc limit 1";
$res2=mysql_query($req2);
$idmax2=mysql_result($res2,0);
echo $idmax2;
?>

Net et sans bavure !
bull - 30 juin 2008 à 10:46
Villa Flore tu as fait une erreur dans ta première méthode au niveau de ton mysql_result.

Tu as mis $req1 au lieu de $res1 dans ton mysql_result. Une fois cette coquille corrigée a marche très bien ;)

Merci pour toutes ces réponses qui nous aident bien lorsqu'on coince ^^

Bull
cinatit - 30 mars 2009 à 16:46
est-ce possible de convertir cette requete en ODBC

$req1="select max(id) from $tb";
$res1=mysql_query($req1);
$idmax1=mysql_result($req1,0,"max(id)");
echo $idmax1;


parce que ce que je code ne fonctionne pas

$query = "SELECT MAX(...colonne...) as statut FROM ...table...";
$result =odbc_exec(...connection...,$query);
$row = odbc_fetch_row($result);
echo $row[0];


le echo ne me retourne rien...

dans lefond ce que je veux c'Est trouver la plus grande valeur dans ma colonne en odbc
lakanino - 23 mai 2012 à 00:23
ssssssda3
Ajouter un commentaire
Réponse
+2
moins plus
- mysql_fetch_assoc est une fonction qui retourne un tableau associatif
- mysql_fetch_row est une fonction qui retourne un tableau avec pointeur

Ce qui veut dire que si tu souhaites utiliser la fonction mysql_fetch_assoc, je te conseille la requête suivante :

$query = "SELECT MAX(statut_1) as statut FROM T_caracteres WHERE table_ ='$table' ";
$result = mysql_query($query) or die ("Exécution de la requête impossible");
$row = mysql_fetch_assoc($result);
echo $row["statut"];

Si tu souhaites utiliser mysql_fetch_row, voici la requête à utiliser :

$query = "SELECT MAX(statut_1) as statut FROM T_caracteres WHERE table_ ='$table' ";
$result = mysql_query($query) or die ("Exécution de la requête impossible");
$row = mysql_fetch_row($result);
echo $row[0];

Désolé je ne suis pas doué pour expliquer, je te conseille d'aller te renseigner sur le site www.php.net.
Ajouter un commentaire
Réponse
+0
moins plus
Autant pour moi la requête est :
$query = "SELECT MAX(lien_id) FROM liens ORDER BY lien_id ASC";
Ajouter un commentaire
Réponse
+0
moins plus
C'est bon en fait, j'ai trouvé un moyen totalement différent d'arriver au même résultat :

$query = "SELECT * FROM liens ORDER BY lien_id DESC LIMIT 20";


Merci pour tout.
Ajouter un commentaire
Réponse
+0
moins plus
Moi qui cherchais compliqué... Tu as trouvé simple. merci beaucoup :)
Ajouter un commentaire
Réponse
+0
moins plus
Lorsque je souhaite afficher $row j'obtiens "Array" alors que je souhaiterai afficher un nombre. Je comprends rien.
Aidez-moi SVP. Merci d'avance. Roukmouth...


C'est surement un peu tard mais si ça peut aider quelqu'un dans le futur. Je crois que la question initiale n'a pas été répondue. Si tu place le résultat de cette dernière requête dans $row avec la commande mysql_fetch_assoc($result); il faudra écrire quelque chose comme :

echo $row[0] pour voir le résultat ! Sinon ça écrit ARRAY puisque $row est un tableau de tout les résultats de la requête. le [x] va pointer un index en particulier.

C'est tout !

@+ et bonne chance !Configuration: Windows XP Internet Explorer 7.0
Ajouter un commentaire
Réponse
+0
moins plus
Et j'ai oublié d'indiquer d'où venait ton erreur...

donc ton code était :

$query = "SELECT MAX(statut_1) FROM T_caracteres WHERE table_ ='$table' ";
$result = mysql_query($query) or die ("Exécution de la requête impossible");
$row = mysql_fetch_assoc($result);
echo $row[6];

Il y a 2 erreurs dans ton code :

- Tu utilises mysql_fetch_assoc au lieu de mysql_fetch_row

- Tu utilises l'indexe 6 dans ton echo $row[6] ... Le problème, c'est que dans ton SELECT, tu ne récupère qu'une seule donnée ( MAX(statut_1) ). Donc si tu veux afficher cette donnée, écris plutôt : echo $row[0]

Bon courage pour la suite :)
Ajouter un commentaire
Réponse
-1
moins plus
Pas si simple
Quand j'écris:
$query = "SELECT MAX(statut_1) FROM T_caracteres WHERE table_ ='$table' ";
$result = mysql_query($query) or die ("Exécution de la requête impossible");
$row = mysql_fetch_assoc($result);
echo $row[6];

rien n'est affiché !!!

Où est l'erreur?
Ajouter un commentaire
Ce document intitulé « [PHP/MySQL] Récupérer valeur MAX » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?