Warenkorb - SQL Abfrage mit einem array

ronaldo84

Erfahrenes Mitglied
Hallo
Ich möchte einen Warenkorb Programmieren.
Ich lasse alle Artikel ausgeben und neben jedem Artikel ist ein submitbutton. Wird der Button geklickt wird, wird die entsprechende Artikelnummer in einem Array gespeichert. Das klappt auch schon alles. Nur würde ich gerne wissen wie ich eine SQL Abfrage mit einem bestimmten Wert aus dem array machen kann?Weiß jemand Hilfe? Danke
 
Code:
"select artikelnummer, bezeichnung, preis
from artikel
where artikelnummer = '" . $array['artikelnummer'] . "'"

wobei $array['artikelnummer'] die Artikelnummer aus deinem Array ist.

Gruß

Marian
 
Danke schonmal dafür. Wenn ich nun einen zweiten Artikel in den Warenkorb lege stehen in dem array ja beide Artikelnummern. Wie muss ich die SQL Abfrage ändern das beide angezeigt werden. Muss ich das in eine While EOF-Schleife packen oder gibt es da einen "besseren" Weg?
 
Hi

du könntest eine andere Abfrage benutzen. Dazu bastelst du dir die einzelnen Artikelnummer zusammen.

Code:
  $sql="Select artikelnummer,bezeichnung,preis from artikel where artikelnummer in (";
  for($i=0;$i<count($array);$i++)
  {
  if($i>0)
  {
  	$sql .=",".$array[$i];
  }
  else
  {
  	$sql .=$array[$i];
  }
  }
  $sql .=")";
  
  
 So kannst du dir ne Abfrage zusammenbasteln, die dir alle artikelnummern,Bezeichnungen,... ausgibt. Und das unabhängig von der Anzahl der Einträge im Array.
  Es gibt bestimmt noch ne elegantere Möglichkeit, aber ich habe das auch schon ein paar mal benutzt und es geht ganz gut
  
  Hoffe ich konnte dir helfen?
  
  cu
 
Moment geht das überhaupt mit implode

Ich bau mir in der for-Schleife ja meine SQL-Abfrage zusammen. Da hat doch implode nichts mit zu tun.
Denn ich will nach der Schleife eine sql-Abfrage habe die ungefähr so aus sieht

Code:
 ... where artikelnummer in (1,3,56,789,n,n,n)

n steht für natürliche Zahlen

Da hilft dir implode nun auch nicht wirklich weiter!
 
Doch, da hat seine Schnellschuss-Antwort Recht!

PHP:
$array = array(1,3,56,789);
$string = implode(',',$array);
echo($string);
// Ausgabe: 1,3,56,789
 
Ich habe es mit der For-Schleife gemacht, da ich ja sowieso noch einen Zähler für die Postion (Reihenfolge in der die Ware in den Korb gelegt wird) brauchte. Nun ist aber das Problem das nach der artikelnummer sortiert wird. Da die Tabelle auch danach sortiert ist. Nun würde ich das aber gerne verhindern und es so behalten das die Reihenfolge in der die Ware in den Korb gelegt wir einbehalten wird. Kann ich das irgendwie machen?
 
Zurück