Hallo Forum,
an eine Funktion wird werden 2 Arrays übergeben. Eines mit den Artekelnummern und das andere mit den dazugehörigen Anzahlen.
Wenn in der DB bereits die Artikel vorhanden sind, sollen dort die Anzahlen aktualisiert werdern. Das geschieht aber nicht. Ich bekomme immer mehrere Zeilen mit der gleichen Artikelnummer. Sieht jemand den Fehler ?
function updateCard($anzahl, $artikelnummer)
{
for($i=0; $i <= count($anzahl); $i++) {//remove empty itemnumbers
if(!empty($anzahl[$i])) {
$anz[] = $anzahl[$i];
$art[] = $artikelnummer[$i];
}
}
$i = 0;
foreach($art as $key => $value) {// create one array
if (!empty($anz[$i])) {
$in[$art[$i]] = $anz[$i];
$i++;
}
}
## update item counts
$itemNumbers = implode(',', $art);
$res =& $this->db->query("
SELECT
artikelnummer, anzahl
FROM
warenkorb
WHERE
sid = '".$this->sid."'
AND
artikelnummer
IN
(".$itemNumbers.")
");
$old = array();
if($res->numRows() > 1) {
while($row =& $res->fetchRow(DB_FETCHMODE_ASSOC)) {
$old[$row['artikelnummer']] = $row['anzahl'];
$result =& $this->db->query("
UPDATE
warenkorb
SET
anzahl = '".$in[$row['artikelnummer']]."'
WHERE
sid = '".$this->sid."'
AND
artikelnummer = '".$row['artikelnummer']."'
");
}
print_r($old);
Bin ratlos.