MAX ne marche pas!

Fermé
hommersim Messages postés 18 Date d'inscription samedi 5 janvier 2013 Statut Membre Dernière intervention 14 janvier 2015 - 8 mars 2014 à 17:27
flokocha Messages postés 1510 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 octobre 2015 - 10 mars 2014 à 18:35
Bonjour à tous et à toutes,

Voilà, j'ai deux tables dont l'une (membre) contient les données sur les membres et la deuxième table (upload) contient entre autre des informations sur les images envoyées par les membres.
Les membres peuvent envoyer plusieurs images simultanément et ces images auront comme point commun le titre et l'id du membre.
Alors ce que je veux, c'est sélectionner la dernière image envoyée par le membre :

function file_image(){

global $bdd;

$requete = $bdd->query("SELECT MAX(upload.id), upload.up_filename AS filename, upload.up_pathname AS chemin, upload.up_titre AS titre, membre.pseudo AS pseudo
FROM upload
INNER JOIN membre ON membre.id = upload.up_id_posteur
WHERE upload.up_type = 'image' GROUP BY upload.up_titre ");
$billets = $requete->fetchAll();

return $billets;
}

Je me suis servi de MAX comme vous pouvez le constater.
Mais voilà ça ne marche pas, ce sont les premières images envoyées qui sont sélectionnées.
Je tiens à mentionner qu'avant je voulais sélectionner les premières et je m'étais servi de MIN, ce qui a marché.

Mais avec MAX, j'ai beau écrire la syntaxe différemment, j'ai toujours le même résultat.
Si quelqu'un peut me venir en aide, ce serait vraiment sympa.
A voir également:

2 réponses

hommersim Messages postés 18 Date d'inscription samedi 5 janvier 2013 Statut Membre Dernière intervention 14 janvier 2015
9 mars 2014 à 13:17
Personne?
0
flokocha Messages postés 1510 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 octobre 2015 281
10 mars 2014 à 18:35
Salut,

"ces images auront comme point commun le titre et l'id du membre" => Pourtant tu ne fais ton group by qu'à partir du titre. Si deux membres ont des images avec le même titre, ta requête n'est plus bonne.

Tu devrais donc remplacer ton group by par : GROUP BY pseudo, titre

Et il n'y a effectivement a priori pas de raison pour que le max() ne fonctionne pas. De quel type est la colonne upload.id ?

Si ça ne fonctionne toujours pas, donne un exemple de quelques entrées dans chacune des deux tables et le résultat que tu obtiens avec ta nouvelle requête à partir de ces entrées.
0