2017-05-21 2 views
0

Ich habe ein Array von ids ich folgen, wenn ich echo:Auswählen Beiträge ids von Array von User-ID - mysql

echo json_encode($followingIds); 

druckt:

[{"User_two_id":"3"},{"User_two_id":"4"},{"User_two_id":"5"}] 

ich jetzt alle IDs auswählen möchten aus Post-Tabelle, wo der Wert/s von Author gleich dem Wert meiner User_two_id's in meinem Array ist.

"Autor indiziert ids von user_two"

Hier ist, wo ich bisher bekommen habe, die nicht funktioniert

function getPosts($follwingIds) { 

     $sql = "SELECT id 
     FROM posts 
     WHERE Author IN ('$follwingIds') 
     GROUP BY id 
     HAVING COUNT(DISTINCT Author)"; 

    $result = $this->conn->query($sql); 

    if ($result != null) { 

     while ($row = $result->fetch_assoc()) { 
      $returnArray[] = $row; 
     } 
    } 




} 
+0

Wo kommt das Array her? – Strawberry

Antwort

0

Ein Problem hier ist:

WHERE Author IN ('$follwingIds') 

hier $follwingIds in einem JSON object wo als mysql IN erforderlichen Wert in kommagetrennten Werten. So anstatt, ein JSON-Array es Zeichenfolge konvertieren wie:

$follwIds = implode(',', array_column($follwingIds, 'User_two_id')); 

und verwenden Sie es in Abfrage wie:

WHERE Author IN ($follwIds) 
+0

Danke, aber es gibt aus irgendeinem Grund Null zurück. wie es nie 'if ($ result! = null) {' Ich echote $ follwIds und es sieht gut aus (3,4,5), ich habe sogar eine manuelle Abfrage in phpmyadmin und WHERE Author IN (3,4,5) .. es gab, was ich wollte, aber es funktioniert nicht in PHP aus irgendeinem Grund! – adimona

+0

Ihre Funktion gibt keinen Wert zurück, vielleicht ist das der Grund –

+0

danke, aber sollte es nicht noch die if-Anweisung innerhalb der Funktion übergeben? 'if ($ result! = null) {echo" notnull "; .. " – adimona

Verwandte Themen