DB Ergebnis aus array erzeugen...

markberg

Erfahrenes Mitglied
Hallo,
kann mir jemand sagen, wie eine Abfrage aussehen muss, wenn das Ergebnis aus einem array kommt!? Hoffe ist verständlich ausgedrückt u n d überhaupt möglich (?!), habe ein Warenkorbsystem erstellt, darin werden mehrere "bestellnummern" hinterlegt und dann möchte ich, dass die Kunden vor dem bestellen sich die ganze Sache vorher nochmal anschauen können!? Dazu möchte ich anhand der "bestellnummern" die DB Anfrage mit den restlichen Infos abrufen! Bin mit mysql leider nicht so vertraut... Vielen herzl. Dank vorab... :-)

...mein Warenkorb...:
PHP:
<?
if (isset($_SESSION['warenkorb'])) {
    $myCart = $_SESSION['warenkorb'];
}
else {
    $myCart = array();
}

$anzahlProdukte = sizeOf($myCart['items']);

$myCart['items'][$anzahlProdukte]['anzahl'] = $_REQUEST['anzahl'];
$myCart['items'][$anzahlProdukte]['bestellnummer'] = $_REQUEST['bestellnummer'];

//$myCart['items'][$anzahlProdukte]['anzahl'] = $_REQUEST['anzahl'];
//$myCart['items'][$anzahlProdukte]['bestellnummer'] = $_REQUEST['bestellnummer'];

// Warenkorb wieder in Session speichern
$_SESSION['warenkorb'] = $myCart;
 
Probier mal Folgendes:
PHP:
<?php

	$query = '
		SELECT
		        …
		  FROM
		        …
		  WHERE
		        `bestellnummer` IN ("'.implode('", "', array_map('mysql_real_escape_string', $array)).'")
		';
	$result = mysql_query($query)
		or die(mysql_error());

?>
 
Vielen Dank schonmal...
Habe es jetzt so gemacht:

PHP:
$Ergebnis = 'SELECT id, bild, bestellnummer, artikel, menge, preis, getraenkeart, kategorie, produktinfo FROM DB161304.angebot
WHERE `bestellnummer` IN ("'.implode('", "', array_map('mysql_real_escape_string', $array)).'")';
$Ergebnis = mysql_query($query) or die(mysql_error());
if ($Ergebnis) {
while ($Datensatz) {
echo '<tr><td><b>Bestellnr.:</b></td><td>&nbsp;'.$Datensatz['bestellnummer'].'</td></tr>'; // usw.

Kommt Fehlermeldung... bin anscheinend etwas dümmlich, was so eine Abfragen angeht :-(, sorry... Wenn ich das richtig verstehe, ist das array leer!? Ist aber nicht...

Warning: array_map() expects argument 1, 'mysql_real_escape_string', to be either NULL or a valid callback in /mnt/kw1/01/487/00000000/htdocs/neu/warenkorb/warenkorb.php on line 172

Warning: Bad arguments to implode() in /mnt/kw1/01/487/00000000/htdocs/neu/warenkorb/warenkorb.php on line 172
Query was empty
 
Ist es möglich, dass deine PHP-Version die mysql_real_escape_string()-Funktion noch nicht hat, da sie älter als 4.3.0 ist? Alternativ kannst du auch dessen Vorgängerfunktion mysql_escape_string() oder schreibst dir kurzerhand eine eigene:
PHP:
function mysql_escapeString( $string )
{
	return preg_replace('/[\x00\x08\x09\x0A\x0D\x1A\x22\x25\x27\x5F]/', '\\\0', $string);
}
 
Ja, älter, habe ich gerade bemerkt (4.0.12), trotzdem auch mit Vorgängerversion haut es nicht hin... Langsam weiss ich nicht mehr weiter...
 
Zurück