[SQL]Erreur que je ne parviens pas à trouver dans une requête?!

Erreur que je ne parviens pas à trouver dans une requête?! [SQL] - SQL/NoSQL - Programmation

Marsh Posté le 22-11-2008 à 10:49:24    

Bonjour,
 
Pour mon site, nous avons changé de serveur. Le nouveau est en php5 au lieu de 4.
Depuis, je rencontre une erreur de type 1054 et plus rien ne fonctionne.
 
Je vous colle la requête ci-dessous, car je ne parviens pas à trouver la solution.
 
 
requête SQL:  
 
SELECT pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id, p.products_price, p.products_weight, p.products_price1, p.products_price2, p.products_price3, p.products_price4, p.products_price5, p.products_price6, p.products_price7, p.products_price8, p.products_price1_qty, p.products_price2_qty, p.products_price3_qty, p.products_price4_qty, p.products_price5_qty, p.products_price6_qty, p.products_price7_qty, p.products_price8_qty, p.products_qty_blocks, p.products_tax_class_id, IF( s.status, s.specials_new_products_price, NULL ) AS specials_new_products_price, IF( s.status, s.specials_new_products_price, p.products_price ) AS final_price
FROM products_description2 pd, products p
LEFT JOIN manufacturers m ON p.manufacturers_id = m.manufacturers_id, products_to_categories p2c
LEFT JOIN specials s ON p.products_id = s.products_id
WHERE p.products_status = '1'
AND p.products_id = '4921'
AND pd.products_id = '4921'
AND pd.language_id = '1'
LIMIT 0 , 30  
 
 
Donne:
1054 - Unknown column 'p.products_id' in 'on clause'
 
Alors que le champ p.products_id est bien déclaré et existant :heink:
 
Qqun peut il m'aider?

Reply

Marsh Posté le 22-11-2008 à 10:49:24   

Reply

Marsh Posté le 22-11-2008 à 11:49:34    

Il semblerait que le soucis soit ici:
LEFT JOIN specials s ON p.products_id = s.products_id  
 
Mais je ne vois pas pourquoi :/

Reply

Marsh Posté le 22-11-2008 à 12:11:54    

Ne faudrait-il pas avoir p2c au lieu de p et écrire

on p2c.products_id = s.products_id

Reply

Marsh Posté le 22-11-2008 à 13:38:33    

J'ai modifié cette requête dans l'index.php, mais je me rends compte que sur le site, l'erreur reste, et la requête apparaît inchangée :/
 
Je ne vois pourtant pas où pourrait se trouver ce code de requête, si ce n'est dans l'index.
 
Si l'un de vous veut tester, voici l'ip du serveur: 195.114.19.66
Mettez dans votre fichier HOSTS la ligne suivante:
 
195.114.19.66 www.bc-elec.com
 
et sur le site, choisissez un produit pour voir l'erreur.  Si vous savez me dire dans quel fichier je trouverai ce code, car là je suis perdu. Le modifier dans l'index ne change rien, et ce code n'est pas dans products.php


Message édité par Brush653 le 22-11-2008 à 13:39:18
Reply

Marsh Posté le 22-11-2008 à 16:27:00    

no idea?

Reply

Marsh Posté le 22-11-2008 à 16:46:26    

c'est folklo cette manière de mélanger des jointures dans le where et a base de join, perso je la réécrirai d'abord uniquement a base de join.
a aucun moment je vois de lien avec p2c non plus ce qui me semble être aberrant.
 
-> même si ca marchait avant et que ca retournait ce que tu voulais pour moi ca tient du miracle -> réécrit

Reply

Marsh Posté le 22-11-2008 à 19:01:19    

Merci Casimir, mais mes notions de SQL sont très limitées :D
 
Je ne sais donc comment ré-écrire :/

Reply

Marsh Posté le 26-11-2008 à 17:31:23    

SELECT pd.products_name, p.products_model, p.products_image, p.products_id, p.manufacturers_id,  
p.products_price, p.products_weight, p.products_price1, p.products_price2, p.products_price3,  
p.products_price4, p.products_price5, p.products_price6, p.products_price7, p.products_price8,  
p.products_price1_qty, p.products_price2_qty, p.products_price3_qty, p.products_price4_qty,  
p.products_price5_qty, p.products_price6_qty, p.products_price7_qty, p.products_price8_qty,  
p.products_qty_blocks, p.products_tax_class_id,  
IF( s.status, s.specials_new_products_price, NULL ) AS specials_new_products_price,  
IF( s.status, s.specials_new_products_price, p.products_price ) AS final_price  
FROM products_description2 pd inner join products p on p.products_id = pd.products_id
LEFT JOIN manufacturers m ON p.manufacturers_id = m.manufacturers_id  
LEFT JOIN specials s ON p.products_id = s.products_id  
WHERE p.products_status = '1'  
AND p.products_id = '4921'  
AND pd.language_id = '1'  
LIMIT 0 , 30

Reply

Sujets relatifs:

Leave a Replay

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