Hallo,
ich habe folgendes Problem ich würde gern 3 arrays mit PDO verarbeiten wo jedes array in einer In() liste im sql statement eingefügt werden soll.
Hier mal mein Ansatz
und das macht die funktion implode aus paraA - paraC, und der inhalt von a-c und $sql mit var_dump
So ist der Stand im moment leider liefert mir aber $res nur ein leeres Array zurück.
Schonmal besten Danke für jegliche Hilfe
mfg
mo
ich habe folgendes Problem ich würde gern 3 arrays mit PDO verarbeiten wo jedes array in einer In() liste im sql statement eingefügt werden soll.
Hier mal mein Ansatz
PHP-Code:
$paraA = array();
$paraB = array();
$paraC = array();
$a = parent::implode($paraA, $zs);
$b = parent::implode($paraB, $newOrt);
$c = parent::implode($paraC, $newFa);
$para = array_merge($paraA,$paraB,$paraC);
$sql = "SELECT fa_namen.id_fa_namen, fa_namen.name,fa_namen.anzahl_ma, orte.plz, orte.ort, zeitspannen.zeitspanne
FROM fa_namen
INNER JOIN orte ON fa_namen.ort_id = orte.id_orte
INNER JOIN zeitspannen ON fa_namen.zeitraum_id = zeitspannen.id_zeitspannen
WHERE fa_namen.zeitraum_id IN(".$a.")
AND fa_namen.ort_id IN(".$b.")
AND fa_namen.id_fa_namen IN(".$c.")";
$this->stmt = $this->pdo->prepare($sql);
$this->stmt->execute($para);
$res = $this->stmt->fetchAll();
Code:
$paraA = array(1) { [":value1"]=> string(1) "1" } $paraB = array(1) { [":value2"]=> string(1) "8" } $paraC = array(16){ [":value3"]=> string(1) "1" [":value4"]=> string(2) "17" [":value5"]=> string(2) "18" [":value6"]=> string(2) "19" [":value7"]=> string(2) "20" [":value8"]=> string(2) "21" [":value9"]=> string(2) "22"} $a = string(7) ":value1" $b = string(7) ":value2" $c = string(136) ":value3,:value4,:value5,:value6,:value7,:value8,:value9" $para = array(18) { [":value1"]=> string(1) "1" [":value2"]=> string(1) "8" [":value3"]=> string(1) "1" [":value4"]=> string(2) "17" [":value5"]=> string(2) "18" [":value6"]=> string(2) "19" [":value7"]=> string(2) "20" [":value8"]=> string(2) "21" [":value9"]=> string(2) "22"} $sql = "SELECT fa_namen.id_fa_namen, fa_namen.name,fa_namen.anzahl_ma, orte.plz, orte.ort, zeitspannen.zeitspanne FROM fa_namen INNER JOIN orte ON fa_namen.ort_id = orte.id_orte INNER JOIN zeitspannen ON fa_namen.zeitraum_id = zeitspannen.id_zeitspannen WHERE fa_namen.zeitraum_id IN(:value1) AND fa_namen.ort_id IN(:value2) AND fa_namen.id_fa_namen IN(:value3,:value4,:value5,:value6,:value7,:value8,:value9)"
Schonmal besten Danke für jegliche Hilfe
mfg
mo
Kommentar