php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.04.2006, 17:14  
Benutzer
 
Registriert seit: 26.03.2006
Beiträge: 82
Mach!N3
Standard Warenkorb & Bestellscript

Hi!

Ich bastle (immer noch) an meinem onlineshop (einfach zur Uebung). Nun funzt eigentlich alles super gut. Auch hier im Forum wurde mir schon zweimal richtg klasse weitergeholfen.

Nun stehe ich vor folgendem Problem.
Wenn ich im Warenkorb auf "Bestellung" klicke sollen alle relevanten Daten in die Tabelle "bestellungen" geschrieben werden.

Dies macht das Script auch wunderbar. NUR EINEN ARTIKEL LAESST DAS SCRIPT GRUNDSAETZLICH WEG!?!

Es ist auch kein bestimmter Artikel, so dass ich sagen k�nnnte der is in der MySQL Tabelle falsch eingetragen oder so. Es muss wirklich am Script liegen.

Hier die Scripte:

artikel.php
Code:
<?php
session_start();
include("dbconnect.php");
include("authentifizierung.php");

// Es wird ein SQL Befehl in einer Variablen gespeichert
$sql = "select id, name, preis, bestand from artikel order by preis DESC";

// In folgender Variable wird die Datenbankanfrage gespeichert inkl. der Fehlermeldung bei Nicht-Funktion

$result = mysql_query($sql) or die (mysql_error());
?>
<html>
<head><title>Artikelliste</title></head>
<body>
<h1>Artikelliste</h1>
Folgende Artikel k�nnen Sie bestellen
<table cellspacing=2 cellpadding=4 border=0>
<tr bgcolor="yellow">
<th>Artikel</th><th>Preis</th><th>Bestand</th><th> </th>
</tr>
<?php
	while($row = mysql_fetch_assoc($result))
		{
			print "<tr bgcolor='#cccccc'>";
			print "<td>".$row['name']."</td><td>".$row['preis']." Euro</td><td>".$row['bestand']."</td>";
			print "<td><a href=warenkorb.php?id=".$row['id'].">". "Warenkorb</a></td>";
			print "</tr>";
	 	}
?>
</table>
<a href=warenkorb_uebersicht.php>Zur Warenkorb�bersicht</a>
</body>
</html>
warenkorb.php
Code:
<?php
session_start();
include ("dbconnect.php");
include("authentifizierung.php");

print "Warenkorb von Kundennummer: ".$_SESSION['nummer'];
    $sql = "SELECT COUNT(*) AS anzahl FROM warenkorb WHERE kundennummer='".$_SESSION['nummer']."' AND artikelid='".$id."'"; 
    $result = mysql_query($sql) OR die(mysql_error());
    $row = mysql_fetch_assoc($result);

if($row['anzahl'] > 0) {
        // Nur Updaten
$sql = "update warenkorb set stueck=stueck+1 where kundennummer='".$_SESSION['nummer']."' AND artikelid='".$id."'";
echo "
";
echo $sql;
echo "
";
mysql_query($sql) OR die(mysql_error());
    } else {
        // Neuer eintrag
      $sql = "insert into warenkorb (artikelid, kundennummer) values (".$_REQUEST['id'].",".$_SESSION['nummer'].")";
      echo "
";
echo $sql;
echo "
";
mysql_query($sql) OR die(mysql_error());
    }
?>
<?php

?>
<html>
<head><title>Artikel wurde in den Warenkorb gelegt</title></head>
<body>
<?php
      {
   print "Der Artikel: ".$id." wurde in den Warenkorb gelegt!";
   print "
";
   print "<a href=artikel.php>Zur�ck zur Artikel�bersicht</a>";
   print "
";
   print "<a href=warenkorb_uebersicht.php>Zum Warenkorb</a>";
   }
   
?>
</body></html>
warenkorb_uebersicht.php
Code:
<?php
session_start();
include ("dbconnect.php");
include("authentifizierung.php");

if (isset($_REQUEST['weniger']) && $_REQUEST['weniger'] == 1) {
$sql = "update warenkorb set stueck=stueck-1 where kundennummer='".$_SESSION['nummer']."' AND artikelid='".$_REQUEST['artikelid']."'";
echo "
";
echo $sql;
echo "
";
$weniger = mysql_query($sql) OR die(mysql_error());
}

if (isset($_REQUEST['weniger']) && $_REQUEST['weniger'] == 2) {
$sql = "update warenkorb set stueck=stueck+1 where kundennummer='".$_SESSION['nummer']."' AND artikelid='".$_REQUEST['artikelid']."'";
echo "
";
echo $sql;
echo "
";
$weniger = mysql_query($sql) OR die(mysql_error());
}


print "Warenkorb von Kundennummer: ".$_SESSION['nummer'];
    $sql = "SELECT COUNT(*) AS anzahl FROM warenkorb WHERE kundennummer='".$_SESSION['nummer']."' AND artikelid='".$id."'"; 
    $result = mysql_query($sql) OR die(mysql_error());
    $row = mysql_fetch_assoc($result);
   
   

$sql = "SELECT COUNT(*) AS anzahl FROM warenkorb";
            echo "
";
echo $sql;
echo "
";
    $result = mysql_query($sql) OR die(mysql_error());
    $row = mysql_fetch_assoc($result);

    echo "Anzahl gleicher Eintr�ge: ".$row['anzahl']."";

// Jetzt die Artikeldaten zwecks Anzeige selektieren
$sql = "select name, preis, stueck, artikelid from artikel, warenkorb where warenkorb.kundennummer=".$_SESSION['nummer']." and artikel.id=warenkorb.artikelid";

$result = mysql_query($sql) or die (mysql_error());

?>
<?php

?>
<html>
<head><title>Warenkorb �bersicht</title></head>
<body>
<h1>Warenkorb</h1>
Folgende Artikel liegen im Warenkorb:

<table cellspacing=2 cellpadding=4 border=0>
<tr bgcolor="yellow">
<th>Artikel</th><th>Preis</th><th>Stueck</th><th>Anzahl um -1 verringern</th><th>Anzahl um +1 erh�hen</th>
</tr>
<?php
   // Die mysql_fetch_assoc, die hier stand, wird jetzt schon vorher aufgerufen
      while($row = mysql_fetch_assoc($result))
      {
   print "<tr bgcolor='#cccccc'>";
   print "<td>".$row['name']."</td><td>".$row['preis']." Euro</td><td>".$row['stueck']."</td>";
   print "<td><a href=warenkorb_uebersicht.php?weniger=1&artikelid=".$row['artikelid'].">weniger</a></td>";
    print "<td><a href=warenkorb_uebersicht.php?weniger=2&artikelid=".$row['artikelid'].">mehr</a></td>";
   print "</tr>";
       }
   
?>
</table>


&gt;&gt;&gt; Bestellung abschicken &lt;&lt;&lt;</p>


Zur�ck zur Artikelseite</p>
</body></html>
bestellung.php
Code:
<?php
session_start();
include ("dbconnect.php");
include("authentifizierung.php");

$sql = "select artikelid, stueck from warenkorb where kundennummer='".$_SESSION['nummer']."'";
$result = mysql_query($sql) OR die(mysql_error());
    $row = mysql_fetch_assoc($result);

      while($row = mysql_fetch_assoc($result))
      {
$sql = "insert into bestellungen (kundennummer, artikelid, stueck) values ('".$_SESSION['nummer']."', '".$row['artikelid']."', '".$row['stueck']."')";
print "
";
print $sql;
print "
";
print "
";
print "
";
print "
";
print "
";
print "
";

mysql_query($sql) OR die(mysql_error());
       }
	   
$sql = "delete from warenkorb where kundennummer='".$_SESSION['nummer']."'";
mysql_query($sql) OR die(mysql_error());

print "Herzlichen Dank f�r Ihre Bestellung";

?>
Ihr k�nnt das ganze hier ausprobieren:
http://web1.vs159021.vserver.de/php03/index.php
Benutzer: melissa2003
PW: 4121981

Ich habe die wichtigen $sql mal ausgeben lassen, also Ihr bekommt das Ganze auch sch�n angezeigt was das Script macht und so.

Ich hoffe Ihr habt eine Idee.

...ich bin am Ende mit meinem Latein
Mach!N3 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 02.04.2006, 18:19  
Benutzer
 
Registriert seit: 26.03.2006
Beiträge: 82
Mach!N3
Standard

Hat wirklich keiner eine Idee?

Hat schon mal jemand so ein ähnliches Problem vllt gehabt?
Mach!N3 ist offline  
Alt 02.04.2006, 22:29  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Mach!N3
Hat wirklich keiner eine Idee?
Machs nicht so umständlich.

Speichere den Warenkorb in der Session:
Neuer Eintrag:
Code:
if (! isset($_SESSION['warenkorb'][$_POST['artikelnummer']]))
  $_SESSION['warenkorb'][$_POST['artikelnummer']] = 0;
$_SESSION['warenkorb'][$_POST['artikelnummer']] += $_POST['menge'];
Warenkorb löschen:
Code:
$_SESSION['warenkorb'] = array();
Einzelnen Eintrag löschen:
Code:
$_SESSION['warenkorb'][$_POST['artikelnummer']] = 0;
Warenkorb ausgeben:
Code:
foreach($_SESSION['warenkorb'] as $artikelnummer => $menge)
{
  if ($menge < 1) continue;
  printf('Artikelnummer: %s, Bezeichnung: %s, Menge: %s, Preis: %s
',
    $artikelnummer,
    hole_name($artikelnummer),
    $menge,
    hole_preis($artikelnummer));
}
Und erst dann, wenn der Kunde den Kram haben will, generierst Du entweder in der Tabelle Bestellung den Eintrag u/o die Email an den Kunden bzw. Auslieferungslager und Buchhaltung.
 
 


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 unregistrierter User Exon PHP Tipps 2007 3 25.05.2007 19:15
Problem mit Warenkorb (Session/Array) Charly Shop Sui PHP Tipps 2006 5 30.08.2006 15:14
Query was empty bei Warenkorb Shalina PHP Tipps 2006 12 10.06.2006 00:45
[Erledigt] Warenkorb Alternative PHP-Fortgeschrittene 28 18.04.2006 14:19
warenkorb Artikelanzahl verringern Mach!N3 PHP Tipps 2006 59 30.03.2006 08:09
warenkorb & mysql Mach!N3 PHP Tipps 2006 16 27.03.2006 21:18
neuen Warenkorb erstellen PHP Tipps 2005 2 15.05.2005 14:10
warenkorb oder shop system PHP Tipps 2005 4 15.01.2005 19:51
[Erledigt] Hilfe - Problem mit Warenkorb PHP Tipps 2004 1 26.11.2004 11:32
einfacher warenkorb Beitragsarchiv 3 23.11.2004 16:24
Warenkorb - neuer Session Datensatz! Broadcast PHP Tipps 2004 7 29.10.2004 18:05
anleitung für warenkorb bratwurstschorsch PHP Tipps 2004 1 25.10.2004 21:59
WARENKORB - Artikelmenge aktualisieren PHP Tipps 2004 6 18.10.2004 13:14
Artikelsuche - Warenkorb PHP Tipps 2004 9 12.10.2004 12:48
Problem mit Warenkorb PHP Tipps 2004 6 25.06.2004 00:54

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php warenkorb, warenkorb php, warenkorb html, html warenkorb, warenkorb mit php, php03, warenkorb html code, warenkorb.php, warenkorb in php, warenkorb code, http://www.php.de/php-tipps-2006/38746-warenkorb-bestellscript.html, html code warenkorb, php03 warenkorb, warenkorb in html, php warenkorb klasse, php warenkorb script, warenkorb php script, warenkorb script, warenkorb klasse php, warenkorb script php

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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.