Komisches Query - funktioniert nur wenn bestimmte Felder ausgefüllt sind

folio

Erfahrenes Mitglied
Hi,

habe hier folgendes Query:

Code:
	$product_info_query = tep_db_query("select p.products_id, pd.products_name,	pd.products_description, p.products_model, p.products_quantity, p.products_image, 	pi.products_image1, pi.products_image2, pi.products_image3, pi.products_image4, pi.products_image5,	pi.products_image6, pi.products_image7, pi.products_image8, pi.products_image9, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id FROM ".TABLE_PRODUCTS." p,".TABLE_PRODUCTS_DESCRIPTION." pd,".TABLE_PRODUCTS_IMAGES." pi WHERE p.products_status = '1' AND p.products_id = '".(int)$HTTP_GET_VARS['products_id']."' AND pd.products_id = p.products_id AND pi.products_id = p.products_id AND pd.language_id = '" . (int)$languages_id . "'");

Das Problem: Die Felder pi.products_image1 - pi.products_image9 sind nicht immer gesetzt. Das Query soll aber auch funktionieren, wenn diese Felder leer sind und dann halt nur den Rest auslesen.

Wenn ich dieses Query laufen lasse und folgende Abfrage mache:

Code:
$product_info = tep_db_fetch_array($product_info_query);
if(isset($product_info['products_name'])) {
print("blubb");
}
else {
print("bla");
}

Dann kommt, wenn die Felder products_image 1 - products_image9
leer sind
"bla" raus

und wenn mind. eins der Felder gesetzt ist
"blubb" raus.

Mit diesem Query hier funktioniert es übrigens ganz wunderbar:

Code:
$product_info_query = tep_db_query("select p.products_id, pd.products_name, pd.products_description, p.products_model, p.products_quantity, p.products_image, pd.products_url, p.products_price, p.products_tax_class_id, p.products_date_added, p.products_date_available, p.manufacturers_id from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where p.products_status = '1' and p.products_id = '" . (int)$HTTP_GET_VARS['products_id'] . "' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "'");

Dann werden halt nur die zusätzlichen Bilder nicht angezeig!

Versteht ihr mein Problem? Kann ich es noch irgendwie besser erläutern? Hat jemand eine Idee, wo der Fehler liegen könnte?

Beste Grüße,
folio
 
Zurück