PHP Auf LEFT JOIN Tabelle zurück greifen.

volcem

Lieutenant
Registriert
Dez. 2007
Beiträge
1.021
[ERLEDIGT]Auf LEFT JOIN Tabelle zurück greifen.

Guten,

irgend wie weiß ich gerade nicht wieso das hier nicht so geht wie ich das will :P

Folgendes:

Ich rufe folgende Daten aus der DB:

PHP:
//Lade Warekorb aus der Datenbank.

$sid_id =  $_SESSION["cartitem"];
$product_details = mysql_query("SELECT DISTINCT `products`.`product_id`, `products`.`product_title`, `products`.`product_price`, 
`products`.`product_old_price`, `products`.`product_catid`, `products`.`product_orderid`, `products`.`product_image`,
 `products`.`product_weight`, `products`.`product_date`, `products`.`product_date_edit`, `products`.`product_description`,
 `products`.`product_manufacturers`, `products`.`product_visable` FROM `products` LEFT JOIN `cartitem` ON `cartitem`.`product_id`
 AND `cartitem`.`quantity` WHERE `cartitem`.`cartitemid`= '$sid_id'") or die(mysql_error());

Dann lass ich eine kleine schleife laufen um alle Produkte aufzulisten die sich in cartitem befinden:

PHP:
while($row = mysql_fetch_array($product_details)) 
    {
    $image = $row['product_image'];
    $id = $row['product_id'];
    $product_title =$row['product_title'];
    $price = $row['product_price'];
// Diese Variable kann nicht ausgelesen werden:
    $menge = $row['quantity'];
//Ausgabe
echo "TABLE Inhalt";
}

Klappt auch soweit ganz gut, bloß wieso kann ich nicht auf die $menge Variable zurück greifen ?

Logischerweise kommt dieser Fehler:
Notice: Undefined index: quantity in /var/www/shopping_cart.php on line 30
Da auf quantity nicht zugegriffen werden kann :/
print_r($row) zeigt folgendes:

PHP:
Array ( [0] => 2 [product_id] => 2 [1] => Ein schönes zweites Produkt [product_title] => Ein schönes zweites Produkt [2] => 4.99
 [product_price] => 4.99 [3] => 4.99 [product_old_price] => 4.99 [4] => 2 [product_catid] => 2 [5] => [product_orderid] => [6] =>
 21253299[2].jpg [product_image] => 21253299[2].jpg [7] => 1kg [product_weight] => 1kg [8] => 2009-08-20 12:50:22 [product_date] =>
 2009-08-20 12:50:22 [9] => 2009-08-20 15:59:59 [product_date_edit] => 2009-08-20 15:59:59 [10] => Bla Testprodukt 2 Ich bin also das 2
 Produkt. [product_description] => Bla Testprodukt 2 Ich bin also das 2 Produkt. [11] => United-sale [product_manufacturers] => United-sale
 [12] => true [product_visable] => true )

PHP:
products = PRIMARY product_id
cartitem = PRIMARY product_id


Wo liegt hier mein Denk Fehler?

lg
 
Zuletzt bearbeitet:
PHP:
$product_details = mysql_query("SELECT DISTINCT `products`.`product_id`, `products`.`product_title`, `products`.`product_price`, 
`products`.`product_old_price`, `products`.`product_catid`, `products`.`product_orderid`, `products`.`product_image`,
 `products`.`product_weight`, `products`.`product_date`, `products`.`product_date_edit`, `products`.`product_description`,
 `products`.`product_manufacturers`, `products`.`product_visable` ,`cartitem`.`quantity`

FROM `products` LEFT JOIN `cartitem` ON `cartitem`.`product_id` = products.product_id WHERE `cartitem`.`cartitemid`= '$sid_id'") or die(mysql_error());

und immer im Quellcode ein error_reporting(E_ALL) setzen! Sonst siehst du diese Fehler nicht.
 
Du selektierst die "quantity" Spalte gar nicht mit. Wie soll die dann auftauchen?
Das muss schon irgendwo zwischen dem SELECT und dem FROM stehen... ;)
Und deine JOIN Bedingung finde ich auch ein wenig abenteuerlich... Muss da bei MySQL gar kein Vergleich rein? Oder ist das so eine implizite Geschichte über den gleichen Spaltennamen?
Ich bin ein Freund davon, sowas zwecks Übersichtlichlichkeit immer auszuschreiben. Also JOIN .. ON products.product_id = cartitem.product_id

Nachtrag: Da war einer schneller und hatte die gleichen Gedanken... :)
 
Zuletzt bearbeitet: (Nachtrag)
error_reporting(E_ALL)
Ist gesetzt, spuckte halt nur : Notice: Undefined index: quantity in /var/www/shopping_cart.php on line 30 aus.

So funktioniert es wunderbar.

Ja da lag wohl der Fehler-> im vergleich. + spalte auswählen..

das ja bitter sowas nicht zu sehen.., bin froh wenn der Warenkorb fertig ist, geht mir echt auffen sack :P

Danke danke.

lg
 
Zuletzt bearbeitet:
Zurück
Oben