Probleme sur requete SQL

Eléphant du PHP | 68 Messages

22 nov. 2006, 21:15

Bonjour,

J'ai une table foto dans laquelle chaque utilisateur peut laisser 3 fotos o maximum. Je veux aficher sur ma page une photo par utilisateur. cela suppose donc qu'il faut que je suprime les doublons.

J'ai crée cette requete mais elle ne fonctionne pas. aidez moi
$sql="SELECT DISTINCT user,miniature FROM photos where id_cat='$id_cat' ORDER BY miniature LIMIT 0,12"; 
Marino TEKI
In God I trust

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

22 nov. 2006, 21:53

Modération : Afin d'obtenir plus de réponses, le sujet est déplacé dans le forum "SQL & Bases de données" qui concerne tout ce qui est "requête" :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

22 nov. 2006, 21:54

Salut,

Avant de donner une réponse peux tu détailler le fonctionnement des tables, comment sont enregistrées les différentes photos ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

22 nov. 2006, 22:15

Pour commencer, ta syntaxe est incorrecte.

On ne le dira jamais assez :
Sortez les variables des chaînes de caractères ! :tir2:
$sql = "SELECT DISTINCT user, miniature FROM photos WHERE id_cat='".$id_cat."' ORDER BY miniature LIMIT 0,12"; // si id_cat est alphanumérique
$sql = "SELECT DISTINCT user, miniature FROM photos WHERE id_cat=".$id_cat." ORDER BY miniature LIMIT 0,12";   // si id_cat est numérique
À tout hasard, qu'est-ce que ça donne après ces corrections ?... :-*

Eléphant du PHP | 68 Messages

24 nov. 2006, 17:13

J'ai essayé

Code : Tout sélectionner

$sql = "SELECT DISTINCT user, miniature FROM photos WHERE id_cat='".$id_cat."' ORDER BY miniature LIMIT 0,12"; // si id_cat est alphanumérique $sql = "SELECT DISTINCT user, miniature FROM photos WHERE id_cat=".$id_cat." ORDER BY miniature LIMIT 0,12"; // si id_cat est numérique
Mais toujours la même chose. sa ne marche pas[/list]
Marino TEKI
In God I trust

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 nov. 2006, 17:46

Est-ce que tu peut nous donner le message d'erreur que tu obtiens. Puis essayer de passer ta requete directement dans phpMyAdmin et nous dire ce qui ne marche pas ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 68 Messages

24 nov. 2006, 17:58

J'ai trouvé la solution à mon problème.

Code : Tout sélectionner

SELECT user,miniature FROM photos where id_cat='$id_cat' group by user
Merci pour votre aide!
Marino TEKI
In God I trust

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

24 nov. 2006, 21:25

Je vais tout de même détailler le fond de ma pensée du début :
Il y a certainement un schmilblick dans la modèlisation de la table, beaucoup de données seront répétées inutilement (d'après ce que j'ai pu comprendre).

Si l'utilisateur a 3 images il y aura 3 fois son pseudo (peut être d'autres champs aussi :-k).

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute