Fehler in MySQL-Abfrage bzw. Tabelle falsch?

Act of Fate

Erfahrenes Mitglied
Hallo,

ich programmiere zur Zeit einen Online-Shop für eine befreundete Band, also NON-Profit und habe so meine Probleme: Und zwar habe ich eine Tabelle mit den Feldern idnr,session,artikelid,anzahl und eine PHP Funktion die die Artikel dem Warenkorb hinzufügt. Nun das Problem: anhand der Session kann dann zugeordnet werden, wer die Artikel hinzugefügt hat, aber es geht nur 1 Session, also auch nur ein Artikel mit bestimmter Anzahl, erst wenn ich diesen Datensatz lösche, kann ich neue Artikel hinzufügen und wrde gerne wissen, wie ich das Prblem löse. Hier nochmal das Wesentliche:

PHP:
function art_add($artikelID) // Funktion zum hinzufügen von Artikeln
{
	$qryExists	= mysql_query("SELECT * FROM shop_korb WHERE (artid='".$artikelID."') AND (session='".session_id()."')");
	
	$num_ex		= mysql_num_rows($qryExists);
	
	if($num_ex > 0) 
	{
		// Artikel um Anzahl 1 erhöhen
		$qryAdd		= "UPDATE shop_korb SET artanzahl=artanzahl+1 WHERE (artid='".$artikelID."') AND (session='".session_id()."')";
		
		if(mysql_query($qryAdd)) # Query erfolgreich
		{
			
			return true;
		
		}
		
		else # Nicht erfolgreich
		{
			
			return false;
		
		}
	}
	
	else
	{
		// Artikel hinzufügen
		$qryAdd		= "INSERT INTO shop_korb VALUES ('','".session_id()."','0','".$artikelID."','1')";
		
		if(mysql_query($qryAdd))
		{
			
			return true; # Query erfolgreich
		
		}
		
		else
		{
			
			return false; # nicht erfolgreich
		
		}
	
	}

}

Tabelle:
shop_korb

Feld Typ Null Standard
lfdnr int(11) Nein 0
session varchar(120) Ja NULL
kdnr int(11) Nein 0
artid int(11) Nein 0
artanzahl int(11) Nein 0

Vielen vielen Dank!

Wurde meine vorherige Frage gelöscht? Was war falsch?
 
Ich würde die Artikel des Warenkorbs überhaupt nicht in der Datenbank speichern. Dafür gibt es Sessions. Du legst in einem Array die IDs der Artikel im Warenkorb ab und merkst Dir zusätzlich die Anzahl. Das Array wird im superglobalen Session-Array abgelegt. Wenn Du Details zu den Artikeln anzeigen möchtest, kannst Du immernoch die zusätzlichen Daten anhand der IDs im Array aus der Datenbank holen.

snuu
 
Ja, du hast recht, mal sehen... aber das die datenbank nichbt zu voll wird, darauf gebe ich schon Acht, nur etwas anders, viele Wege führen nach Rom. Im Übrigen habe ich meine Problemquelle selber beseitigt, die Funktion mysql_error wirkt Wunder. Ich hatte vergessen auf die ID Primary Key undauto_increment zu setzen
 
Zurück