php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.03.2006, 23:19  
Benutzer
 
Registriert seit: 26.03.2006
Beiträge: 82
Mach!N3
Standard warenkorb Artikelanzahl verringern

Hi!

Ich habe vor ein par Tagen bereits schon mal hier nachgefragt wegen meinem Warenkorb, da ging es um das erkennen wieviel Zeilen in der MySQL Tabelle gleich sind. Mir wurde dann super weitergeholfefn mit einem Tutorial bezüglich count(*) as anzahl usw.

Jetzt möchte ich in meinem Warenkorb die Anzahl verringern.

D.h. bei klick auf den link weniger soll eine Variable (z.B. $weniger = 1) weitergegeben werden. Das Script soll sich dann selbst aufrufen und die Stückzahl via sql befehl um -1 verringern.

Ich habe das dann wie folgt versucht:

warenkorb.php
Code:
<?php
session_start();
include ("dbconnect.php");
include("authentifizierung.php");
if ($weniger=1) {
$sql = "update warenkorb set stueck=stueck-1 where kundennummer='".$_SESSION['nummer']."' AND artikelid='".$id."'";
$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);
    if($row['anzahl'] > 0) {
        // Nur Updaten
$sql = "update warenkorb set stueck=stueck+1 where kundennummer='".$_SESSION['nummer']."' AND artikelid='".$id."'";
mysql_query($sql) OR die(mysql_error());
    } else {
        // Neuer eintrag
		$sql = "insert into warenkorb (artikelid, kundennummer) values ($id, ".$_SESSION['nummer'].")";
mysql_query($sql) OR die(mysql_error());
    }
$sql = "SELECT
                COUNT(*) as anzahl
            FROM
                warenkorb";
    $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 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>Bestellseite</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>verringern</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.php?weniger=1>". "weniger</a></td>";
	print "</tr>";
	 	}
	
?>
</table>
Zurück zur Artikelseite
</body></html>
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>
</body>
</html>
Jetzt bekomme ich jedoch immer folgende Fehlermeldung:
Warenkorb von Kundennummer: 1111You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 1111)' at line 1

Ich frage nun Euch ob Ihr mir vllt helfen könnt? Ich habe wirklich versucht es selbst zu lösen. Habe mir oft vor Augen gehalten wie genau die update Anweisung funktioniert aber ich komme einfach nicht weiter.

Wisst Ihr woran es liegt?
Mach!N3 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 29.03.2006, 23:31  
Erfahrener Benutzer
 
Benutzerbild von dsmcg
 
Registriert seit: 11.10.2005
Beiträge: 2.405
dsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäre
Standard

lass dir mal $sql ausgeben, und zwar das SQL wo auch der Fehler passiert..

vileicht:
Code:
set stueck=(stueck-1)
die () bin aber nicht sicher, MySQL ist nicht wirklich mein Gebiet.
__________________
Wie man Fragen richtig stellt
dsmcg ist offline  
Alt 29.03.2006, 23:36  
Benutzer
 
Registriert seit: 26.03.2006
Beiträge: 82
Mach!N3
Standard

Das ist ja das komische! Die Fehlermeldunge mit 1111 <
Die 1111 das ist die Kundennummer.

Das hat mit dem $sql ganz oben in der if schleife eigentlich gar nix zu tun.

Eine Frage:
Könnt Ihr Euch mal im warenkorb.php die Zeile
print "<td><a href=warenkorb.php?weniger=1>". "weniger</a></td>";
und die obige
if schleife (ganz oben im warenkorb) Script angucken.

Ist das so richtig?

Ich mein. Wenn ich bei der artikel.php auf warenkorb klicke. Dann wird auch alles richtig übergeben. Nur wenn sich das script dann wieder selbst aufruft dann bringt er mir die Fehlermeldung mit 1111. Wobei 1111 die Kundennummer ist und an der wird nix geändert.
Mach!N3 ist offline  
Alt 29.03.2006, 23:37  
Gast
 
Beiträge: n/a
Standard Re: warenkorb Artikelanzahl verringern

Deine Kundennummer ist offenbar ein String:
Code:
$sql = "insert into warenkorb (artikelid, kundennummer) values ($id, '".$_SESSION['nummer']."')";
 
Alt 29.03.2006, 23:38  
Benutzer
 
Registriert seit: 26.03.2006
Beiträge: 82
Mach!N3
Standard

Also an

Code:
set stueck=(stueck-1)
liegt es auch nicht.

Aber guck mal, in Zeile 17 verwende ich ja auch stueck=1 ohne Klammer, das klappt auch!
Mach!N3 ist offline  
Alt 29.03.2006, 23:40  
Benutzer
 
Registriert seit: 26.03.2006
Beiträge: 82
Mach!N3
Standard

ABer von artikel.php zu warenkorb.php wird die Kundennummer ja für die weiterverwendung im ganzen warenkorb script richtig übernommen?! Warum macht des script dann beim erneuten load wenn ich auf "weniger" klicke im warenkorb dann so eine fehlermeldung.
Mach!N3 ist offline  
Alt 29.03.2006, 23:41  
Benutzer
 
Registriert seit: 26.03.2006
Beiträge: 82
Mach!N3
Standard

Ihr könnt es gerne ausprobieren:

http://web1.vs159021.vserver.de/php03/index.php

Benutzername: melissa2003
Passwort: 4121981
Mach!N3 ist offline  
Alt 29.03.2006, 23:45  
Benutzer
 
Registriert seit: 26.03.2006
Beiträge: 82
Mach!N3
Standard

Also ich hab jetzt mal ohne STring versucht aber das klappt auch nicht.
Mach!N3 ist offline  
Alt 29.03.2006, 23:47  
Erfahrener Benutzer
 
Benutzerbild von dsmcg
 
Registriert seit: 11.10.2005
Beiträge: 2.405
dsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäredsmcg sorgt für eine eindrucksvolle Atmosphäre
Standard Re: warenkorb Artikelanzahl verringern

Zitat:
Zitat von ignatz
Deine Kundennummer ist offenbar ein String:
Code:
$sql = "insert into warenkorb (artikelid, kundennummer) values ($id, '".$_SESSION['nummer']."')";
so sollte es klappen.

warum lässt du dir nicht auch den Query selbst ausgeben? Das würde das ganze doch wesentlich vereinfachen..
__________________
Wie man Fragen richtig stellt
dsmcg ist offline  
Alt 29.03.2006, 23:51  
Benutzer
 
Registriert seit: 26.03.2006
Beiträge: 82
Mach!N3
Standard

@dsmcg

sorry das klappt leider auch nicht

Omg, jetzt muss ich blöd fragen, bin glaub ich echt noch ein Anfänger.

DU meinst die Query selbst ausgeben?

Wie mach ich das (code?!)? Welche Query konkret meinst Du?
Mach!N3 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 mit einem Bestellungsformular sup123 PHP Tipps 2008 0 24.03.2008 15:51
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 & Bestellscript Mach!N3 PHP Tipps 2006 2 02.04.2006 22:29
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
Warenkorb in PHP realisieren PHP-Fortgeschrittene 8 11.12.2004 11:31
[Erledigt] Hilfe - Problem mit Warenkorb PHP Tipps 2004 1 26.11.2004 11:32
einfacher warenkorb Beitragsarchiv 3 23.11.2004 16:24
anleitung für warenkorb bratwurstschorsch PHP Tipps 2004 1 25.10.2004 21:59
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
php03, lösung php03-, lösung php03, php03 lösung, php03 warenkorb, http://www.php.de/php-tipps-2006/38641-warenkorb-artikelanzahl-verringern.html, warenkorb script mysql, artikel.php php03, warenkorb script, warenkorb php03, php03a aufgabe 1, php03 musterlösung, warenkorb mysql, php03 aufgabe 1, $row->anzahl;, warenkorb script php, lösungsaufgaben php03, \php03\, bestand aus warenkorb verringern, php bestellung warenkorb

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