php.de

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

 
 
LinkBack Themen-Optionen Bewertung: Bewertung: 3 Stimmen, 3,00 durchschnittlich.
Alt 16.12.2008, 11:49  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard artikelbestand vorläufig runter rechnen wenn artikel in WK gelegt wird

Hallo Leute.

Ich bastel nun schon etliche Stunden an dem Problem und habe mich durchs Manual gesucht,aber nichts hilfreiches gefunden.

Folgendes habe ich vor.

Wenn ein Artikel in einen Warenkorb gelegt wird soll voläufig so lange der Artikel im WK liegt der Bestand runter gerechnet werden. Das klappt auch wenn ich einen Artikel in WK lege zum Beispiel einmal in einer Menge von 3 Stueck wird das korrekt abgezogen. Lege ich den selben Artikel aber noch mal rein in den WK z.B. 1 mal erneut dann zieht er mir bei dem Vorgang 4 ab,also den Wert mit der Artikel schon im WK liegt plus dem Wert der noch mal neu dazu kommt vom selben Artikel und das soll ja nicht sein.

Ziel soll sein.

Wenn ich einen Artikel mit der Stueckzahl 3 in den Wk lege und dann noch mal rein lege mit einer anderen Steuckzahl z.B. 1 soll er beim zweiten rein legen auch nur den Wert abziehen. Also einmal 3 und dann wenn er noch mal in den Wk kommt 1 mal.

Ich hoffe ich konnte mich verständlich ausdrücken.

Hier mein Code der noch nicht so richtig funktinoiert.

PHP-Code:
//session array bilden
  
$_SESSION['artikel'][] = array(
          
'art_id' => intval($_POST['art_id']),
          
'stueck' => intval($_POST['stueck']),
          
'groesse' => (string)$_POST['groesse'],
          
'farbe' => (string)$_POST['farbe']
          );
          
  
//artikelbestand vorläufig runter rechnen wenn artikel in WK gelegt wird
  
foreach($_SESSION['artikel'] as $key => $value)
  {
   
$sqlbefehl ="
      Update
       artikel
      Set
       bestand = bestand - "
.intval($value['stueck'])."
      Where
       id_artikel ="
.intval($value['art_id'])."
      "
;
   
$res_bestand mysql_query($sqlbefehl)or die(mysql_error().$sqlbefehl);
  }
  
  
header("Location: ".$path."/l-shop/artikel.php?id_cat=".intval($_SESSION['id_cat']).""); 
Die ist nur der betreffende Codeausschnitt.

Ich hoffe ihr könnt mir wieder mal weiter helfen mfg der litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 16.12.2008, 11:58  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Ich sehe 2 Möglichkeiten:
- 1ste: Du rechnest die Differenz zwischen alter und neuer Stückzahl aus bevor du sie überschreibst und benutzt den Wert für dein Bestand-Update
- 2te: Du machst vorm überschreiben der Stückzahl erst den Bestand wieder auf den alten Wert und ziehst am Ende den Gesamtwert (die neue Stückzahl) wieder ab
cycap ist offline  
Alt 16.12.2008, 12:45  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Ich komme da momentan nicht weiter. Ich muss ja vor dem Update erst prüfen ob die Artikel id im Session Array drin ist,das habe ich mit

PHP-Code:
if(in_array($value['art_id'], $_SESSION['artikel'])) 
versucht,aber das funktioniert nicht.

Dann das Differenz bilden,da hänge ich auch momentan. Weil im Array befindet sich ein Wert der dann heist $value['stueck'] und der selbe kommt ja dazu wenn ich einen bzw. in dem Falle den selben Artikel noch mal dazu lege. Da beist sich doch irgendwas.

Und so eine Differenz soll ja auch nur gebildet werden wenn der Artikel schon mal im WK liegt. Auch da hänge ich,ich weis das ich das alles mit if und else machen muss,aber momentan fehlt mir irgendwie das richtige denken gerade.

Bin momentan grad vollkommen Ratlos.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 16.12.2008, 12:46  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

Wenn der Artikel in den Warenkorb gelegt wurde, dann existiert ja ein Tabelleneintrag im WK mit Artikelnummer, Menge und einem Zeitstempel.

Um den aktuellen verfügbaren Lagerbestand zu berechnen musst du alle in der WK-Tabelle vorhandenen Mengen zu einem Artikel addieren und vom Stamm-Bestand 'abziehen', d.h. du zeigst an: $stamm_menge - $summe_wk_menge

Wenn der Kauf erfolgt, dann muss die WK-Menge vom Lagerbestand abgezogen werden, bzw. in ein neues Summenfeld 'Verkaufte Menge' gebucht werden. Bei der Auslieferung wird dann aus 'Verkaufte Menge' nach 'Lagerbestand' umgebucht.

Die WK brauchen einen Zeitstempel, damit du liegengebliebene WK löschen kannst, bzw. die reservierten Bestände der Warenkörbe unbeachtet lassen kannst.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline  
Alt 16.12.2008, 12:50  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Hallo Wolla.

Danke für deine Antwort,nur hilft die mir nicht sehr viel weiter momentan weil mein Warenkorb nicht über eine Tabelle läuft sondern komplett über Sessions. Ich hole eigentlich nur gewisse Daten zum Artikel aus der Artikel Tabelle die zur art_id in der Session gehören. Der Warenkorb selber wird über keine Tabelle gesteuert.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 16.12.2008, 12:56  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

wenn du 10 Artikel im Lager hast, und grade 50 Leute den Artikel in den WK legen, hast du ein unlösbares Problem. Warenkörbe mus man in mysql verwalten.
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline  
Alt 16.12.2008, 13:02  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Nun der knackpunkt der Geschichte liegt eben nicht bei deinem Code oben, sondern vorerst an der Stelle wo die Artikel dem Warenkorb zugeordnet werden, denn nur da hast du noch beide Werte die du brauchst.
cycap ist offline  
Alt 16.12.2008, 14:14  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Nun ich habe nun dank cycaps letzten Post das Problem fast komplett gelöst. Nur ein Problem bleibt noch,wenn ein Besucher nun den Warenkor sich belegt mit verschiedenen Artikel und nun aber zum Beispiel der Browser von selber schliest oder sein Rechner abstürtzt und der Browser schliest und die Bestellung noch nicht abgeschickt wurde,dann ist der Bestand runter gerechnet obwohl gie Sachen gar nicht bestellt btw. verkauft wurden. Wie kann ich es dann machen das wenn der Browser sich schliest egal aus welchen Grund und die Bestellung nicht abgeschickt wurde das dann authomatisch in so einem Falle alle Artikel wieder auf ihren ürsprünglichen Bestandswert zurück gesetzt werden?

Ich habe so die dumme Vermutung das,dass nur mit Javascript geht.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 16.12.2008, 14:20  
Moderator
 
Registriert seit: 06.06.2008
Beiträge: 4.945
PHP-Kenntnisse:
Fortgeschritten
Wolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer AnblickWolla ist ein wunderbarer Anblick
Wolla eine Nachricht über ICQ schicken
Standard

hab ich doch in #4 geschrieben

Wenn jemand seinen Browser schließt, sind die Daten weh-eh-ceh-kah : weck
__________________
Warum denkt mein Hund eigentlich immer dann, wenn es an der Tür klingelt, es sei für ihn?
Wolla ist offline  
Alt 16.12.2008, 14:32  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Mist das scheint wirklich ein unlösbares Problem zu sein.

Und was mich ärgert das einzige was ich noch dabei habe.
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
 


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
Warenkorb - Anzahl der Artikel ändern können Randy1990 Datenbanken 17 11.12.2008 18:32
Ein Artikel in vielen Artikelgruppen conceptino Datenbanken 10 14.09.2008 21:34
Übung - Rechnen mit PHP ???? trowman PHP Tipps 2008 16 21.07.2008 16:03
Rechnung erst nach dem Includen rechnen Lassen PHP Tipps 2006 7 05.08.2006 16:09
artikel loeschen samspa5 PHP Tipps 2006 3 20.02.2006 22:08
Script liest ähnlich Artikel aus Datenbank PHP Tipps 2005-2 1 04.10.2005 16:17
Artikel aufklappen und zu klappen PHP Tipps 2005-2 0 05.08.2005 12:36
Artikel aufklappen und zu klappen PHP Tipps 2005-2 0 05.08.2005 12:35
Artikel aufklappen und zu klappen PHP Tipps 2005-2 0 05.08.2005 12:34
Artikel aufklappen und zu klappen PHP Tipps 2005-2 0 05.08.2005 12:34
Mit Tageszeiten rechnen und anzeigen PHP Tipps 2005-2 4 21.07.2005 14:19
Artikel auslesen. 'progman' PHP Tipps 2005-2 19 18.07.2005 21:43
Zeichenkette splitten und mit ihnen rechnen PHP Tipps 2005-2 6 08.07.2005 12:44
artikel löschen? PHP Tipps 2005 1 03.06.2005 10:27
[Erledigt] Probleme beim rechnen im php... PHP Tipps 2004 3 13.09.2004 08:34

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql lagerbestand berechnen, artikelbestand ausrechnen, artikelbestand berechnen, artikelbestände bewerten, artikelbestand php, mysql warenkorb bestellung von bestand abziehen, wert auf 1 runter rechnen

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:34 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