Hallo.
Ich hab ein Problem:
Auf der Artikel-Anzeige-Seite meines "Shopsystems" wird mit folgendem Befehl die Artikel ID aus der Datenbank und die zugehörige Bestellmenge in einem Array gespeichert:
Soweit so gut. Jetzt will ich den Warenkorb anzeigen, das funktioniert wie folgt:
Nun will ich es erreichen, dass wenn jemand als Artikelmenge "0" eingibt, der Artikel aus dem Array gelöscht wird und der Index neu gesetzt wird, damit ich direkt auf ein Element zugreifen kann.
Bisher ist das wie folgt gelöst:
Aber das funktioniert nicht. Er löscht zwar irgendwie das Element, aber er lässt sozusagen einen leeren Platz drin. Dadurch ergibt die Zählung der Array-Elemente genauso viele wie vorher, auch wenn praktisch nur ein Leerzeichen ausgegeben wird.
Versteht ihr was ich meine? Ich hatte gedacht, dass die Funktion
dies für mich regelt.
Habt ihr nen TIpp für mich? Vielen Dank schonmal
Ich hab ein Problem:
Auf der Artikel-Anzeige-Seite meines "Shopsystems" wird mit folgendem Befehl die Artikel ID aus der Datenbank und die zugehörige Bestellmenge in einem Array gespeichert:
Code:
if(($_GET['add2cart'] == "set") && ($_POST[shart] != "") && ($_POST[shanzahl] != ""))
{
$_SESSION['warenkorb'][]=array($_POST[shart], $_POST[shanzahl]);
}
Soweit so gut. Jetzt will ich den Warenkorb anzeigen, das funktioniert wie folgt:
Code:
echo <<<PRINT_TABLE
<tr{$bg_color}>
<td width="25" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">{$j}</font></td>
<td><a href="shop_artikelview.php?kat_id={$kat}&sub_id={$sub}&art={$_SESSION['warenkorb'][$n][0]}&PHPSESSID={$PHPSESSID}"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">{$select_array['art_name']} (Art. {$select_array['art_nr']})</font></a></td>
<td align="center"><input type="text" size="1" name="count[]" value="{$_SESSION['warenkorb'][$n][1]}"></td>
<td align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">{$select_array['art_price']} €</font></td>
<td align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">{$price} €</font></td>
</tr>
PRINT_TABLE;
Nun will ich es erreichen, dass wenn jemand als Artikelmenge "0" eingibt, der Artikel aus dem Array gelöscht wird und der Index neu gesetzt wird, damit ich direkt auf ein Element zugreifen kann.
Bisher ist das wie folgt gelöst:
Code:
if($_POST['action'] == "Aktualisieren")
{
$xi = count($_SESSION['warenkorb'])-1;
for ($h=0; $h<=$xi; $h++)
{
if($count[$h] == "0")
{
unset($_SESSION['warenkorb'][$h][0]);
unset($_SESSION['warenkorb'][$h][1]);
$_SESSION['warenkorb'] = (array_values($_SESSION['warenkorb']));
}
}
}
Aber das funktioniert nicht. Er löscht zwar irgendwie das Element, aber er lässt sozusagen einen leeren Platz drin. Dadurch ergibt die Zählung der Array-Elemente genauso viele wie vorher, auch wenn praktisch nur ein Leerzeichen ausgegeben wird.
Versteht ihr was ich meine? Ich hatte gedacht, dass die Funktion
Code:
array_values($array)
Habt ihr nen TIpp für mich? Vielen Dank schonmal