problem beim warenkorb

donrobby

Grünschnabel
hallo zusammen

hab folgendes problem, und zwar möchte ich artikel in die tabelle warenkorb laden,
wenn ich aber in der tabelle buecher mehr als ein artikel habe trägt er mir immer nur das letzte ein. wieso?

hier der quellcode:

if(isset($_POST["submit"])){


$mysql2=mysql_connect("$host","$bn","$pw")
or die("Keine Verbindung möglich");

mysql_select_db("$db",$mysql2)
or die("Keine Verbindung zur Datenbank möglich");

$abruf="SELECT art_name,preis_ohne,art_nr FROM buecher";
$erg1 = mysql_query($abruf,$mysql2);

if(!$erg1)die("Konnte nicht abrufen");


while($tupel2 = mysql_fetch_array($erg1)){

$artname = $tupel2["art_name"];
$preisohne = $tupel2["preis_ohne"];
$artnr = $tupel2["art_nr"];


}

$insert="INSERT INTO warenkorb (art_id,art_name,art_preis,art_nr,session)
VALUES('$sessid','$artname','$preisohne','$artnr','$sessid')";
mysql_query($insert,$mysql2);
if(!$insert){

die("Kein eintrag möglich");

}



}


?>

danke schonmal
 
Probier mal Folgendes:
PHP:
<?php

	if( isset($_POST['submit']) ) {

		$link = mysql_connect($host, $bn, $pw)
			or die('Verbindung zum Datenbankserver nicht möglich!');
		mysql_select_db($db, $link)
			or die('Auswahl der Datenbank nicht möglich!');

		$query = "
			SELECT
			        `art_name`,
			        `preis_ohne`,
			        `art_nr`
			  FROM
			        `buecher`
			";
		$result = mysql_query($query, $link);

		if( !$result ) die('Datenbankabfrage schlug fehl!');

		while( $row = mysql_fetch_array($result) ) {
			$query = "
				INSERT INTO
				        `warenkorb`
				  SET
				        `art_id`    = '".mysql_real_escape_string($sessid)."',
				        `art_name`  = '".mysql_real_escape_string($row['art_name'])."',
				        `art_preis` = '".mysql_real_escape_string($row['preis_ohne'])."',
				        `art_nr`    = '".mysql_real_escape_string($row['art_nr'])."',
				        `session`   = '".mysql_real_escape_string($sessid)."'
				";
			mysql_query($query, $link)
				or die('Datenbankabfrage schlug fehl!');
			}
		}

	}

?>
 
Die erste Abfrage beschreibt alle Datensätze der Tabelle. Wenn du nun nicht alle Datensätz haben möchtest, musst du die Abfrage einschränken – das ist doch nur logisch.
 
das ist logisch, klar ,

aber ich muss das dann mit irgendwas vergleichen , mit der _id z.b.
aber wenn ich schreibe WHERE _id=_id gibt der mir auch alles aus , weil die id ja immer
gleich die id ist
 
Ein anderer Vorschlag: Angenommen, der Kunde mit der Sitzungs-ID X legt die Ware mit der Waren-ID Y in Z-facher Menge in den Warenkorb. Dann sind doch die einzigen Informationen, die den Kunden mit der Ware verbinden, die Sitzungs-ID und die Waren-ID. Also wären auch nur diese Informationen (neben der Menge) zu speichern. Die anderen Informationen – also die Bezeichnung, der Einzelpreis des Artikels, der Gesamtpreis eines Artikels, etc. – wäre doch zusammen mit der Artikel-Tabelle ermittelbar. Wieso diese also mehrfach speichern?

Das mehrfache Speichern von gleichen Daten nennt man übrigens Redundanz, und in deinem derzeitigen Tabellenschema gibt es einige redundante Daten.
 
ich glaube wir reden aneinander vorbei, mein problem ist :

ich habe eine tabelle mit artikeln drin , wenn ich eines dieser artikel in den warenkorb legen will , legt er mir alle artikel in den warenkorb und nicht das eine was ich angeklickt habe
das hat doch nichts mit der session zu tuhn ,

wenn ich ein artikel anklicke muss er wissen welches gemeint ist und nur der soll auch in den warenkorb
 
Zurück