Ich habe Probleme mit meiner Abfrage, es ruft alle Objekte zweimal ab (außer der letzten) Ich habe die letzten zwei Tage damit verbracht, es ohne Ergebnis zu sortieren, also ich dachte, dass ich hier fragen könnte. Danke im Voraus.Meine Anfrage rekurriert die Daten zweimal
PS:
ich Fortschritte gemacht habe, kommt der Fehler aus der Abfrage, wenn ich es auf PHPMYADMIN ausführen die Daten zweimal abgerufen wird. (So kann jemand einen Fehler in der Abfrage finden)
$token = ***
$userid = ***
$followingposts = $db->query('
SELECT
personal_posts.id,
personal_posts.body,
personal_posts.posted_at,
personal_posts.postimg,
personal_posts.likes,
users.`username`
FROM users, personal_posts, followers
WHERE (
personal_posts.user_id = followers.user_id
OR personal_posts.user_id = :userid
)
AND users.id = personal_posts.user_id
AND follower_id = :userid
ORDER BY personal_posts.posted_at DESC;
', array(':userid'=>$userid), array(':userid'=>$userid));
$response = "[";
foreach($followingposts as $post) {
$response .= "{";
$response .= '"PostId": '.$post['id'].',';
$response .= '"PostBody": "'.$post['body'].'",';
$response .= '"PostedBy": "'.$post['username'].'",';
$response .= '"PostedAt": "'.$post['posted_at'].'",';
$response .= '"PostImage": "'.$post['postimg'].'",';
$response .= '"Likes": '.$post['likes'].'';
$response .= "},";
}
$response = substr($response, 0, strlen($response)-1);
$response .= "]";
http_response_code(200);
echo $response;
class DB {
private $pdo;
public function __construct() {
$pdo = new PDO('****');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$this->pdo = $pdo;
}
public function query($query, $params = array()) {
$statement = $this->pdo->prepare($query);
$statement->execute($params);
if (explode(' ', $query)[0] == 'SELECT') {
$data = $statement->fetchAll(PDO::FETCH_ASSOC);
return $data;
}
}
}
** niemals Ihre eigene JSON rollen **. Siehe ['json_encode()'] (http://php.net/manual/function.json-encode.php) – Phil
Ihre Argumente zu '$ db-> query()' sind falsch, das zweite Argument sollte nicht sein 'array (': userid' => $ userid)'. –
Welchen Treiber benutzen Sie? – chris85