Requête SQL

Requête SQL - PHP - Programmation

Marsh Posté le 11-01-2007 à 21:58:12    

Petit problème pourquoi alors que j'ai inséré "Distinct" il m'affiche les doublons?
 
Merci
 
 
 

Code :
  1. $sql = "SELECT DISTINCT p.id, p.reference, p.nom, p.promotion, p.descriptif, p.description, p.image1, p.prix, p.on_special, pc.categorie_id FROM peel_produits p, peel_produits_categories pc WHERE p.id = pc.produit_id AND pc.categorie_id = 18 AND p.etat = 1 ORDER BY p.prix LIMIT $start,$nb ";

Reply

Marsh Posté le 11-01-2007 à 21:58:12   

Reply

Marsh Posté le 12-01-2007 à 09:08:14    

Des parenthèses seraient certaiement la bienvenue pour indiquer à SQL les champs à appliquer. A moins peut-être que tu le fasse sur chaque champ...
Un DISTINCT sur une clé primaire ne sert à rien.


Message édité par cvex le 12-01-2007 à 09:08:39
Reply

Marsh Posté le 12-01-2007 à 09:48:07    

id-value
1-FOO
2-FOO
 
Les deux lignes ne sont pas des doublons.

Reply

Marsh Posté le 12-01-2007 à 11:38:59    

'tain c'est de pire en pire, même en étant conscients que c'est du sql et pas du php ils postent encore dans la mauvaise cat'...[:pingouino]
 
le distinct se fait sur tout le tuple, chez moi...:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 12-01-2007 à 12:24:14    

on dirait qu'il manque une jointure...

Reply

Marsh Posté le 12-01-2007 à 12:24:50    

et puis c'est bien du PHP ça commence par $sql = " ... " !
 
LOL

Reply

Marsh Posté le 12-01-2007 à 12:49:34    

Si tu le prends comme ça, $sql = " ... " , ca aurait trés bien pu être du perl également vu que pour une ligne aussi simple la syntaxe est la même. :p A noter que s'il n'y avait pas eu de ; tout à la fin, ca aurait été un script shell.
 
Le probléme aurait il été différent si cette ligne était un extrait de script shell ou un extrait de fichier perl? Non par ce que c'est un probléme de requette et pas un probléme au niveau du code php. La question est donc placé dans la mauvaise catégorie.
 
EDIT : Pourquoi un manque de jointure? "WHERE p.id = pc.produit_id" fait trés bien l'affaire pour relier les deux tables.


Message édité par omega2 le 12-01-2007 à 12:52:06
Reply

Marsh Posté le 12-01-2007 à 13:21:13    

ah oui j'ai fourché, j'ai cru voir 3 tables dans le from

Reply

Marsh Posté le 12-01-2007 à 13:33:09    

:spamafote:
 
C'est clairement pas un pb de PHP. Le vrai programmeur va commencer par exécuter le query dans son client DB, hors PHP (ou Java, ou Ror, ou que sais-je) pour savoir s'il est en face d'un soucis SQL/DB ou PHP...
 
Oui, c'est de pire en pire, et on pourrait même parier que c'est du MySQL.
 
:spamafote: :spamafote: :spamafote:
:spamafote: :spamafote: :spamafote:
:spamafote: :spamafote: :spamafote:

Reply

Marsh Posté le 12-01-2007 à 23:07:48    

skeye a écrit :

'tain c'est de pire en pire, même en étant conscients que c'est du sql et pas du php ils postent encore dans la mauvaise cat'...[:pingouino]
 
le distinct se fait sur tout le tuple, chez moi...:o


 
 
Mais c'est bien du PHP merci pour vos réponses, mais ceci m'avance pas beaucoup! j'ai 5 réponses super mais pas une seules de valables!


Message édité par spoque le 12-01-2007 à 23:08:38
Reply

Marsh Posté le 12-01-2007 à 23:07:48   

Reply

Marsh Posté le 12-01-2007 à 23:18:04    

non c'est pas du php.

 

Et pour te répondre il faudrait que tu nous donnes un exemple de doublon obtenu. Et le sgbd utilisé. Par exemple.


Message édité par skeye le 12-01-2007 à 23:19:00

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 12-01-2007 à 23:33:37    

quel est le rapport avec du php ?  
a premiere vue, c'est une requete SQL ...
que tu l'execute dans un script shell, perl, java, asp ou meme PHP ca reviendra au meme ...
bref c'est indépendant du language  
 
pour avoir plus de chance d'avoir une reponse, je te conseille de déplacer ton post dans la section MySQL/SQL

Reply

Marsh Posté le 13-01-2007 à 15:28:21    

aucun rapport avec le php, c'est du sql [:roane]

Reply

Marsh Posté le 13-01-2007 à 16:18:25    

c'est marrant dans la cat' sql on a le mm pb, on voit plein de gens débarquer avec des "$query =..."
bonjour le mal de yeux pour lire la requête, surtout que la plupart du temps c'est pas un pb de sql mais un pb de php

Reply

Marsh Posté le 13-01-2007 à 20:54:45    

PHP = SQL = MySQL, non?
 
:spamafote: :spamafote: :spamafote:
 
spoque> A la limite, tu pourrais poster dans la cat "hardware", puisque le résultat affiché à l'écran n'est pas le bon?
 
[:petrus75]
 
Le vrai programmeur va commencer par exécuter le query dans son client DB (pour me répéter) et si le query ne donne pas le résultat escompté, c'est un problème SQL (ou propre au DBMS, mais pas PHP).

Reply

Marsh Posté le 14-01-2007 à 09:57:13    

sircam a écrit :

PHP = SQL = MySQL = HTML = CSS, non?


[:aloy] [:el g]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-01-2007 à 12:59:47    

:jap:

Reply

Marsh Posté le 14-01-2007 à 23:43:49    

sircam, lol au debut je pensais  [:axlrose] que tu le disais serieusement PHP = SQL = MySQL.  
j'ai l'impression que l'on a un peu trop traumatisé l'auteur du thread  [:argue]  
 [:talium]

Reply

Marsh Posté le 15-01-2007 à 09:22:42    

weed a écrit :

j'ai l'impression que l'on a un peu trop traumatisé l'auteur du thread  [:argue]


Un peu marre des soupes PHP/MySQL/SQL qui reviennent 10x par semaine... Faudrait faire un topic explicatif "passage obligé", comme c'est le cas pour Java...   [:pingouino]  


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed