Beste PHP'ers,

In mijn osCommerce webshop krijg ik de volgende fout nadat ik een productcategorie wil bekijken:

1054 - Unknown column 'p.products_id' in 'on clause'

select count(*) as total from products_description 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 = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '2' and p2c.categories_id = '274'

Waar kan dit aan liggen? Ik begrijp de fout namelijk ook niet...

Bij voorbaat dank voor jullie hulp!!
@Bart
Dat SQL ongelijk is aan PHP is een ieder wel duidelijk, echter wat Afra probeert duidelijk te maken is dat je waarden welke je gaat toekennen aan een tabelveld van het type numeriek je deze in SQL niet qoute. En ja daar heeft hij/zij/het dan gelijk in!
Idd, die horen buiten quotes.

SeaCrime, aangezien dit niet de enige query zal zijn in je verouderde OsCommerce, waarom ga je niet de nieuwste versie in gebruik nemen?
Noppes schreef op 21.06.2009 11:41
@Afra, dus jij neemt met je gezonde verstand aan dat
- language_id
- categories_id
- products_status
een numeriek veldtype hebben

Je kan niet zo maar schrijven `integers NIET tussen quotes`, wat als de TS lekker varchar als type gedefineerd heeft staan!


Dan lijkt het mij aan ons de taak om TS erop te wijzen dat dat misschien niet zo'n geweldig plan is. Ik zie namelijk geen voordelen van categories_id als varchar op te slaan. Maar je hebt gelijk, indien dit wel de situatie is, dan moet het wel in quotes.

Noppes schreef op 21.06.2009 12:25
@Bart
Dat SQL ongelijk is aan PHP is een ieder wel duidelijk, echter wat Afra probeert duidelijk te maken is dat je waarden welke je gaat toekennen aan een tabelveld van het type numeriek je deze in SQL niet qoute. En ja daar heeft hij/zij/het dan gelijk in!


Jup. En laten we het maar op "hij" houden.
Bedankt voor jullie hulp tot nu toe, ik heb me wat verdiept in die JOIN functie maar ik kan echt niet zien wat er fout is. De velden zijn inderdaad gewoon int() en geen varchar, maar laat het nogmaals duidelijk zijn: ik heb dit script niet geschreven, heb deze webshop gekocht en ben 'm nu aan het uploaden op mijn eigen host, in principe werkt alles behalve die query en dat is natuurlijk onhandig.

Degene die mij kan laten zien waar de fout zit en hoe ik het kan verbeteren zal ik met een gratis domein naar keuze belonen. Bij voorbaat dank!
de fout zit hier: on p.products_id = s.products_id

maar dat wist je waarschijnlijk al ;-)
En hoe kan ik m verbeteren Noppes, dat is mijn laatste vraag? Als je even de juiste query laat zien zal ik je niet meer lastigvallen. Dan krijg je ook je verdiende gratis domein naar keuze (wat ik bij TransIP op jouw naam registreer, waarvoor ik betaal en daarna push (gratis) naar jouw account).
Ik zit niet te wachten op een `gratis` domein, heb er al meer dan genoeg

Het ergste vind ik wel dat je je er niet in wilt verdiepen.... dan wel de suggesties niet opvolgt welke gegeven worden......

En al zal die query executeerbaar worden dan nog heb ik m'n twijfels over de juiste uitkomst...

Noppes, nogmaals: ik respecteer je hulp, daar draait het niet om en ik wil ook best leren, maar zit momenteel om een bepaalde reden wat in tijdnood en anders gaat het te lang duren wat een hoop kosten met zich meebrengt.

Begrijp me niet verkeerd: ik respecteer het dat je me helpt en daar wilde ik iets tegenover zetten..

Reageren