Beiträge von Roland
-
-
du willst doch aber sicher gar nicht erst die Tabelle anzeigen oder?
dann mach den code doch so
PHP
Alles anzeigen<?php if(empty($_SESSION["einkaufswagen"])){//wenn keine Produkte im Einkaufswagen sind echo 'kein Produkt im Warenkorb'; } else{//wenn Produkte im Einkaufswagen sind $_SESSION["einkaufswagen"]= array_unique($_SESSION["einkaufswagen"]); $delete = ($_GET['dell_art']); if(!empty($delete)){ $key = array_search($delete, $_SESSION["einkaufswagen"]); if($key !== false){ unset($_SESSION["einkaufswagen"][$key]); } } echo '<table class="rahmen">'; echo '<th class="kopf">'; //... echo "</table>" ; } ?>
-
ja ist klar^^
der index war 0 und deshalb: 0 ist false
if($key){
//wird nicht ausgeführt wen key 0 ist
}so ist es auch möglich das zu schreiben ist besser da brauchst nicht deine 2 if Bedingungen
if($key !== false){
unset($_SESSION["einkaufswagen"][$key]);
}für dein problem...
da musst du eine große if klammer drum machen am besten prüfst du ob der wahrenkorb leer ist mit
-
gebe dir zu Testzwecken am besten den $_GET['dell_art'], $key und $_SESSION["einkaufswagen"] aus.
ist es immer das erste?
oder eins mit einer bestimmten id?
oder ist es immer das letzte (nachdem du schon alle anderen entfernt) was du entfernen möchtest? -
kommentiere Zeilen mit
//
aus und teste ob der Fehler immer noch kommt -
benutze am besten //
damit kannst du den Fehler eingrenzenstelle sicher das du auch die richtige Version online hast
-
gib code her komplet der eror ist nicht immer in der zeile
ich brauch auch den code drumherum
-
was ist das das kenn ich noch nicht:
echo '</>'; da denke ich soll echo '</tr>'; hin
desweiteren kannst du pls die zeile angeben oder die markieren?
-
ob das möglich ist weiß ich nicht^^
$key = array_search(''aaaa', $array[1]);
key ist dann player_name.du willst wahrscheinlich aber die zahl da also die 1 hm
-
der code wird vom server ausgefürt und an deinen browser geschickt.
d.h. der Server kann doch nicht wissen was du vll mal anklicken wirst. -
$_SESSION["loeschen"][] = $inhalt['ID'] ;
okay Problem ist bei dieser Zeile: alle Produkte die im Warenkorb sind werden in die löschen session geschrieben ich denke das ist nicht das was du willst^^
-
jedes mal wenn die seite aufgerufen wird wird der komplette code abgearbeitet.
wenn du z.b. den link zum löschen verwendest dann sind die Daten die der Link übertragen hat ab der ersten Zeile im php code verfügbar.
der Link müsste auch gar nicht auf der Seite sein, könnte auch von außerhalb kommen würde trotzdem gehen solange du
PHP
Alles anzeigen$_SESSION["einkaufswagen"]= array_unique($_SESSION["einkaufswagen"]); $zuentfernendesproduckt = 100;//das musst du natürlich irgendwie anders übertragen z.b. mit der url... if(!empty($zuentfernendesproduckt)){ $key = array_search($zuentfernendesproduckt, $_SESSION["einkaufswagen"]); if($key){//fals der kunde böse ist und ein Produkt löschen will was er gar nicht in den Einkaufswagen hat... unset($_SESSION["einkaufswagen"][$key]); } }
vor der abgrage und dem ausgeben machst... -
$key = array_search($value, $array);
und zu dem davor:
ZitatIch hab 0 zugewiesen.
Ich dachte wenn ich schreibe $var = false; dann ist es ein boolean.
wenn du 0 zuweist ist es eine zahl gerade noch mal getestet da hast du nicht 0 zugewiesen, und ja du dachtest schon immer richtig bei deiner vermutung xDZitatHab aber auch schon bemerkt, dass $var = 1; gleich true ist.
naja gleich aber nur mit == bei === ist es nicht mehr gleichhier damit kanst bischen herumspielen
-
du brauchst keine Session für das loeschen dass musst du dir doch nicht speichern über mehrere Seiten...
dann müsste man jetzt überlegen ob du überhaupt mehrere zum entfernen machen willst?
Mann könnte ja gleich einen Link in die Letzte spalte machen der das Produkt entfernt? -
ja dann musst du einfach nur das Produkt wider aus deinen $_SESSION["einkaufswagen"] rausnehmen...
das geht z.b. so
PHP//davor solltest du vll noch Duplikate entfernen (kann ja sein das jemand 2 mal auf hinzufügen klickt). das wird in der nächsten Zeile hier gemacht $_SESSION["einkaufswagen"]= array_unique($_SESSION["einkaufswagen"]); $zuentfernendesproduckt = 100; $key = array_search($zuentfernendesproduckt, $_SESSION["einkaufswagen"]); unset($_SESSION["einkaufswagen"][$key]);
-
was willst du machen?
sachen wieder aus den Warenkorb entfernendafür musst du nicht auf die Datenbank zugreifen...
-
<?php
$_POST['abgesendet'] = "Ja";
$_POST["Lesen1"] = 'download';
if ($_POST['abgesendet'] == "Ja" ){ echo " Dieser Artikel wurde im Warenkorb gespeichert. ";}
if ($_POST["Lesen1"] == 'download') {
$key = "1011" ;
$_SESSION["einkaufswagen"][] = "$key";
}
if ($_POST["Lesen1"] == 'CD'){
$key = "101" ;
$_SESSION["einkaufswagen"][] = "$key";
}print_r($_SESSION["einkaufswagen"]);
?>
kommt bei mir raus
Dieser Artikel wurde im Warenkorb gespeichert. Array ( [0] => 1011 )benutzt du auch schön session_start()? nicht das du das vergessen hast^^
-
ja wie kann das da rein kommen...
ich habe es nie rein geschrieben das warst du^^ -
genauso sollte das aussehen.
alle Produkte kann eigentlich nicht sein (naja außer du hast schon mal alle gespeichert) schau mal was in deiner Session drin ist
print_r($_SESSION["einkaufswagen"]); -
ich denke du solltest erst mal Grundlagen über php lernen^^
dein ganzer Einkaufswagen ist sinnlos wenn du in sowieso immer mit den gleichen überschreibst.in deiner Session ist doch etwas drin da musst du doch nichts reinschreiben wenn du nur abrufen willst was drin ist.
lass die Zeile einfach weg okay? du schreibst doch schon was bei deinen Produktseiten rein was du dann auf deiner Einkaufseite abruft.
das * bei SELECT muss bleiben
und du must bei IN()
auch noch ein paar dinge in die klammer schreiben