cette requete retourne un tableau vid, qui peut m;aider svp?

public function Last(){
    $rep = "SELECT post.id, post.name, post.content, post.created_at, users.username
    FROM post
    INNER JOIN users 
    ON post.session_admin = users.id
    WHERE publier = 0
    ORDER BY post.date DESC";
    $res = $this->getPdo()->prepare($rep);
    $res->execute();
     $result = $res->fetchAll(PDO::FETCH_CLASS, $this->class);
     return $result;
}

10 réponses


Carouge10
Réponse acceptée

Bonjour,
Les erreurs PDO sont-elles activées ?
J'ai un doute si tu n'es pas obligé de mettre post.date dans le SELECT quand tu l'utilises avec ORDER BY. As-tu testés cette requête dans PMA ?

Pour la date, je mets post.create_at
quand je fais un dd sur la requette elle me retourne un tableau vid

merci Carouge10,

donc tu t'es trompé dans de nom dans le order_by ?

oui, exactement

un autre prob Carouge10, j'ajoute un AND apres elle retourne encore le tableau vide

montre ta requête et l'as tu testé sous PMA ?

c'est quoi PMA, bro?

PhpMyAdmin

Erreur: Call to a member function getCategories() on string

requette: public function hydratePost(array $post){
$postById = [];
foreach($post as $posts){
$posts->setCategories([]);
$postById[$posts->getId()] = $posts;
}
$categorie = $this->pdo
->query('SELECT c.*, pc.post_id
FROM post_category pc
JOIN category c ON c.id = pc.category_id
WHERE pc.post_id IN (' . implode(',', array_keys($postById)) . ')
')->fetchAll(PDO::FETCH_CLASS, $this->class);

     foreach($categorie as $category){
        $postById[$category->getPostId()]->addCategory($category);
     }
}

Appel de la requette : $jointures = (new PostTable($pdo))->last($session);

(new CategoryTable($pdo))->hydratePost([$jointures]);

Code qui genere l'erreur: <?php
$categories = [];
foreach($jointure->getCategories() as $k => $category){**
$url = $router->url('category', ['id' => $category->getId(), 'slug' =>$category->getSlug()]);
$categories[] = <<<HTML
<a href="{$url}" >{$category->getName()}</a>
HTML;
}
?>