Array- und Sessioninhalte mit DB Inhalten abgleichen -> MySQL 4.0.12 auf rdbms

sebastian423

Grünschnabel
Hallo,

ich habe folgendes Problem:

Ich besitze primär eine Session mit folgendem Inhalt:

PHP:
Array
(
    [warenkorb] => warenkorb Object
        (
            [artikel] => Array
                (
                    [567] => 1
                    [herstellerauswahl] => 0
                    [568] => 2
                    [569] => 3
                )

            [ok] => 1
            [anzahl_parameter] => 0
            [i] => 0
            [wert] => 
        )

)

Im Artikel-Array/Objekt liegen die vom User ausgewälten Produkte (z.B Produkt Nr. [567] mit der Anzahl 1.

Nun will ich eine meiner Datenbankspalten mit den Produktnummern des Artikel-Array/Objekt abgleichen, und als Warenkorb ausgeben. Folgende Select Anweisung habe ich als Idee, funktioniert aber leider nicht.

Datentabelle: Tabellenname
PRODUKTNUMMER = Spaltenüberschrift

PHP:
	$sqlab = "select * from Datentabelle where PRODUKTNUMMER like '$this->artikel'";

$res = mysql_query($sqlab);
$num = mysql_num_rows($res);

	
while ($dsatz = mysql_fetch_assoc($res))
	{
  		if ('$this->artikel = $dsatz["PRODUKTNUMMER"])	

etc..............

Der Code soll als Vorlage dienen. Wäre toll, wenn jemand helfen könnte,

Sebastian
 
Ich würde sagen:
PHP:
  // Alle Produktnummern finden
  $AK = array_keys($this->Artikel);
  // Alle Art-No mit Anführungszeichen umgeben
  foreach ( $AK as $akey => $aval )
  {
   $AK[$akey] = "'$aval'";
  }
  $PN = implode( ',' , $AK);
  // ergibt "'567', 'herstellerauswahl', '568', '569'"
  $sqlab = "SELECT * FROM Datentabelle WHERE PRODUKTNUMMER IN ($PN)";
  
  // usw.

Das wählt dir alle Produkte aus, deren Produktnummern im Array aufgelistet sind. Weiss aber nicht, ob ich deine Frage richtig verstanden habe. Übrigens ungetesteter Ugly-Code.
 
PERFEKT :)

Ich habe noch zur Vollständigkeit den $AK um die $_SESSION erweitert. Der Code ist voll funktionsfähig.

PHP:
// Alle Produktnummern finden
  $AK = array_keys($_SESSION['warenkorb']->artikel);

  // Alle Art-No mit Anführungszeichen umgeben
  foreach ( $AK as $akey => $aval )
  {
   $AK[$akey] = "'$aval'";
  }
  $PN = implode( ',' , $AK);
  // ergibt "'567', 'herstellerauswahl', '568', '569'"

  $sqlab = "SELECT * FROM Datentabelle WHERE PRODUKTNUMMER IN ($PN)";
  
  // usw.

Vielen vielen Dank!
 
Zurück