Rechercher : dans
Par :

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

Dernière réponse le 30 mar 2009 à 16:46:07 roukmouth, le 25 jui 2005 à 11:05:53 
 Signaler ce message aux modérateurs

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... Téléchargements de Mangas et Autres sur Mangas-Dragons...

1

roukmouth, le 25 jui 2005 à 11:26:34

Autant pour moi la requête est :

$query = "SELECT MAX(lien_id) FROM liens ORDER BY lien_id ASC";
Téléchargements de Mangas et Autres sur Mangas-Dragons...

Répondre à roukmouth

2

roukmouth, le 25 jui 2005 à 11:40:53

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. Téléchargements de Mangas et Autres sur Mangas-Dragons...

Répondre à roukmouth

3

izno, le 26 avr 2006 à 11:41:21

Moi qui cherchais compliqué... Tu as trouvé simple. merci beaucoup :)

Répondre à izno

4

Sterring, le 25 aoû 2007 à 05:08:51

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

Répondre à Sterring

5

sergentegarcia, le 1 nov 2007 à 12:53:57

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?

Répondre à sergentegarcia

6

Vash, le 8 jan 2008 à 10:36:17

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

Répondre à Vash

7

Vash, le 8 jan 2008 à 10:42:24

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

Répondre à Vash

8

Villa Flore, le 26 mai 2008 à 00:26:19
  • +1

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 !

Répondre à Villa Flore

9

bull, le 30 jun 2008 à 10:46:02
  • +1

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

Répondre à bull

10

 cinatit, le 30 mar 2009 à 16:46:07

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

Répondre à cinatit