php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.08.2008, 18:17  
Neuer Benutzer
 
Registriert seit: 03.08.2008
Beiträge: 25
mklewer befindet sich auf einem aufstrebenden Ast
Standard Array - Falls Artikel schon vorhanden... (Warenkorb mit Artikel-Varianten)

Hallo!
Erstmal muss ich sagen... tolles Forum!

Mein Ziel:
Ich habe ein Shopsystem.
die Artikel-ID und die gewünschte Menge werden zur Zeit (Später auch die Variante, falls vorhanden) per Formular an das Warenkorb-Script übergeben.

Mein 1. Problem:
Wenn der Kunde einen Artikel in den Warenkorb legt, der schon drin ist, soll der Artikel NICHT nochmal hinzugefügt werden, sondern die Menge um 1 erhöht werden.

Mein 2. Problem:
Ich biete auch Artikel mit Varianten (z.B. T-Shirts -> Größe) an.
Wenn der Kunde den SELBEN Artikel mit VERSCHIEDENEN Varianten in den Warenkorn legt, soll der vorhandene Artikel natürlich NICHT erhöht werden, sondern als neu hinzugefügt werden.
Ich muss sagen, ich habe mich nie sooo richtig Arrays befasst.
Würe super nett von euch, wenn ihr mir helfen könnt

PHP-Code:
# Wenn Modus "edit" uebergeben wurde:
if(isset($_GET['mode']) and ($_GET['mode'] == "add"))
{   
 
$temp = array();   
 
  
# Wenn keine oder weniger als 0 Mengen uebergeben wurden -> Menge 1 als Standard
 
if(empty($_POST['quantity']) || ($_POST['quantity']) < 0)
 {
  
$temp['quantity'] = 1;
 }
  
# Ansonsten die uebergebene Menge in das (Temp) Array speichern
  
else
  {
    
$temp['quantity'] = $_POST['quantity']; 
  }
 
# Die uebergebene Artikel-ID (NICHT Artikelnummer) in das Array speichern
 
$temp['item_id'] = $_POST['item_id']; 
 
 
# Falls die Artikel-ID (NICHT Artikelnummer) schon im  Array existiert, die Menge um 1 erhöhen 
 
if( *** HIER FÄNGT MEIN PROBLEM AN ***)
 {
   echo 
"Dieser Artikel mit der gewünschten Variante existiert bereits im Warenkorb."
 }
  else
  {
     
# Das (Temp) Array in die Session speichern   
     
array_push($_SESSION['cart'], $temp);   
    }


Geändert von mklewer (03.08.2008 um 18:33 Uhr).
mklewer ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 03.08.2008, 19:00  
Neuer Benutzer
 
Registriert seit: 03.08.2008
Beiträge: 25
mklewer befindet sich auf einem aufstrebenden Ast
Standard

kann mir keiner helfen?
mklewer ist offline  
Alt 03.08.2008, 19:01  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Man bist Du geduldig
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
Alt 03.08.2008, 19:06  
Neuer Benutzer
 
Registriert seit: 03.08.2008
Beiträge: 25
mklewer befindet sich auf einem aufstrebenden Ast
Standard

Sorry... auf den anderen Beiträgen wird ja auch öfters fix geantwortet.
Dachte, ich hätte auch so ein Glück
mklewer ist offline  
Alt 03.08.2008, 19:11  
Erfahrener Benutzer
 
Registriert seit: 19.05.2008
Beiträge: 612
PHP-Kenntnisse:
Fortgeschritten
Young Jedi befindet sich auf einem aufstrebenden Ast
Standard

Du könntest das Array ($_SESSIONS['cart']) mit einer foreach Schleife durchlaufen und damit überprüfen, ob die gewünschte ArtikelID bereits vorhanden ist.

btw:
PHP-Code:
if(empty($_POST['quantity']) || ($_POST['quantity']) < 0
ist keine gute Überprüfung - "rwaboh" würde z.B. auch durchgehen, benutze lieber is_numeric anstatt empty
Young Jedi ist offline  
Alt 03.08.2008, 19:16  
Neuer Benutzer
 
Registriert seit: 03.08.2008
Beiträge: 25
mklewer befindet sich auf einem aufstrebenden Ast
Standard

stimmt... is_numeric ist in diesem Fall effektiver.

Die Artikel-ID darf ja auch mehrmals vorhanden sein, aber nur WENN die Varianten unterschiedlich sind.
Es könnte ja sein, dass ein Kunde von einem T-Shirt mehrere haben möchte und zwar mit verschiedenen Varianten.
mklewer ist offline  
Alt 03.08.2008, 19:20  
Erfahrener Benutzer
 
Registriert seit: 19.05.2008
Beiträge: 612
PHP-Kenntnisse:
Fortgeschritten
Young Jedi befindet sich auf einem aufstrebenden Ast
Standard

Dann musst du halt bei einer Übereinstimmung der ArtikelID die Variante überprüfen (ob die gleich ist) -> wenn ja dann um eins erhöhen wenn nicht neues hinzufügen
Young Jedi ist offline  
Alt 03.08.2008, 19:29  
Neuer Benutzer
 
Registriert seit: 03.08.2008
Beiträge: 25
mklewer befindet sich auf einem aufstrebenden Ast
Standard

ja, aber ich kenne den Syntax nicht.

mein gedanke wäre in etwa:
PHP-Code:
if(in_array($_POST['item_id'], $_SESSION['cart']) && (in_array($_POST['variante'], $_SESSION['cart'])
{
# Selber Artikel mit der selben Variante schon vorhanden -> um 1 erhöhen

Aber ich muss der funktion in_array doch sicherlich auch irgendwie sagen in welcher "Spalte" er nach der item_id und variante suchen soll, oder?
mklewer ist offline  
Alt 03.08.2008, 19:34  
Erfahrener Benutzer
 
Registriert seit: 19.05.2008
Beiträge: 612
PHP-Kenntnisse:
Fortgeschritten
Young Jedi befindet sich auf einem aufstrebenden Ast
Standard

du könntest per
PHP-Code:
in_array($temp$_SESSION['cart']) 
überprüfen, ob exakt(!) das selbe Produkt (also alle Werte des Array stimmen überein) im Array $_SESSION['cart'] vorhanden ist. Du kannst es aber auch wie von mir irgendwo oben beschrieben mit foreach durchlaufen lassen.
Bsp:
PHP-Code:
foreach ($_SESSION['cart'] as $produkt){
    if (
$produkt['item_id'] == $temp['item_id'] && $produkt['variante']==$temp['variante']){
        
//um eins erhöhen
    
}else{
        
// Neues Produkt hinzufügen
    
}

Young Jedi ist offline  
Alt 03.08.2008, 19:35  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Stop!
Bevor hier weiterspekuliert wird mußt Du erstmal Deine Anwendung spezifizieren:

- In was für einer Struktur wird das Array in der Siion hinterlegt?
- Was unterscheidet Artikel verschiedener Varianten voneinander. Offensichtlich ja nicht die ID (und warum eigentlich nicht die ID)?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Turnierbaum aus array erstellen kingflo PHP-Fortgeschrittene 11 30.07.2008 11:32
Arrays, Session, Warenkorb Problem Shaft2002 PHP Tipps 2006 6 29.11.2006 12:28
session array Timo Trallala PHP Tipps 2006 18 22.04.2006 13:45
[Erledigt] Warenkorb Alternative PHP-Fortgeschrittene 28 18.04.2006 14:19
Array auslesen andrew22 PHP Tipps 2006 3 21.01.2006 23:06
Array Formatierung PHP Tipps 2006 3 17.01.2006 19:12
Menü mit Unterpunkten supertramp Beitragsarchiv 7 18.10.2005 22:40
[Erledigt] Mehrdimensionales Array in Session speichern PHP-Fortgeschrittene 6 11.10.2005 17:32
Problem beim vergleichen von 2 Arrays PHP Tipps 2005-2 1 06.10.2005 14:25
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
Sortieren von Arrays mit mehr als 2 Dimensionen (Teil 2) Buhmann PHP-Fortgeschrittene 4 12.07.2005 14:03
Array in Session speichern und wieder auslesen Riot PHP Tipps 2005-2 3 08.07.2005 11:43
[Erledigt] Mehrdimensionales Array in eindimensionales Array umwandeln PHP-Fortgeschrittene 3 03.01.2005 22:31
Abfrage mit id aus anderer Tabelle suter PHP Tipps 2004-2 15 16.12.2004 14:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php post array erhöhen, warenkorb mit array, warenkorb varianten mit verscjiedenen preis php, im array prüfen ob bereits vorhanden php, menge array erhöhen, php warenkorb array anzahl erhöhen, artikelnummer bereits vorhanden, php session warenkorb varianten, php falls schon vorhanden in array, menge in warenkorb erhöhen, menge erhöhen warenkorb session, artikelvarianten speichern, wenn artikel vorhanden array php, problem mit menge erhöhen in formular php mit foreach, php wenn menge vorhanden um eins erhöhen, php if array schon vorhanden, menge für artikel in array speichern, php sonderangebote artikelvarianten, php artikelvarianten, artikelvarianten warenkorb

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:48 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum