Bonjour / Bonsoir,

Alors voila je suis entrain de créer une page de recherche sur un site, est je rencontre un petit prôblème au niveau de ma requette sql.
J'ai créer cette requette :

        $QuerySearch = $bdd->query("SELECT * FROM wc_post
        INNER JOIN wc_users ON wc_post.id_poster = wc_users.id
        INNER JOIN post_comments ON wc_post.id = post_comments.post_id
        WHERE CONCAT(wc_post.content, wc_users.name_users) LIKE '%".$q."%'
        ORDER BY id DESC");

qui a pour bute de récupérer des informations part à port à ce que l'utilisateur a céci dans la bare de recherche.
Cette jointure fonctionne bien dans phpmyadmin mais quand je la mais sur ma page search.php elle ne renvoie pas toutes les informations de mais table.
Quand je fait un var_dump() de ma variable qui contient les info de cette requette elle me renvoie uniquement quelle que information.

Voici une image de mais table:
table wc_post

table wc_users

et voici ce qu'il affiche mon var_dump($QuerySearch)

Voila merci d'avance pour ce qui pourons m'aider et pour les personnes qui ont pris la peine de lire.

9 réponses


"ORDER BY id DESC" tu dois avoir un conflit, je vais parler comme phpmyadmin : "de quel id parles tu? L'id de wc_post ou wc_user?".
Essaie de preciser comme suit : ORDER BY nom_table.id
Et mets tes conditions ON entre parentheses également : ON (wc_post.id_poster = wc_users.id)
Essaies ça, et execute un $QuerySearch->errorInfo() également, tu y verra plus clair.
Enfin, je te conseille d'executer des prepare() puis des execute() ;)

JMERISE
Auteur

salut Je vient de faire les modification comme tu la dit, mais rien ne change, je c'est pas si c'est a cause de LIKE.

var_dump($QuerySearch->errorInfo());

As tu un message d'erreur?

JMERISE
Auteur

salut, dsl pour le retard, quand j'effectue le var_dump errorinfo plus bas dans la page il m'affiche :

array (size=3)
  0 => string '00000' (length=5)
  1 => null
  2 => null

Mmmh.. aucune erreur.. tu peux poster un screen de tes 3 bases?

JMERISE
Auteur

table wc_post :

table wc_users:

table subscriptions :

Et en remplacant tes INNER JOIN par des LEFT JOIN ?

Dans ta requete tu ecris "INNER JOIN post_comments" et là le table s'appele subscriptions?

JMERISE
Auteur

salut, j'ai tes pas disponible pour vous répondre, je vais revoir mon code ce soir quand je suis chez moi.