mehrere Arrays mit PDO verarbeiten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mehrere Arrays mit PDO verarbeiten

    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

    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(); 
    und das macht die funktion implode aus paraA - paraC, und der inhalt von a-c und $sql mit var_dump
    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)"
    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

  • #2
    Hallo,

    ich würde erstmal das generierte Statement kopieren, die aktuellen Werte dort einsetzen und das ganze über die Konsole oder PHPMyAdmin ausprobieren.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Jep gerade gemacht und kommt auch nichts zurück. Was mich ein wenig verwundert das das statement ohne pdo schonmal funzte. Aber denke daran wirds wohl liegen.

      Aber das ist hinzubekommen.

      Gibts denn noch eine bessere variante mit kommaseparierten listen zu arbeiten?

      Kommentar


      • #4
        Also wenn die Abfrage selbst kein Ergebnis zurückliefert, dann liegt das Problem doch wohl offensichtlich in der Abfrage und nicht bei PDO?
        This is what happens when an unstoppable force meets an immovable object.

        Kommentar


        • #5
          So alles gut hatte nen fehler in der Abfrage
          mfg
          mo

          Kommentar

          Lädt...
          X