Jointure sql dans une barre de recherche.

Par JMERISE, il y a 9 ans


Base de données MySQL

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

Semeen, il y a 9 ans

"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, il y a 9 ans

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.

Semeen, il y a 9 ans
var_dump($QuerySearch->errorInfo());

As tu un message d'erreur?

JMERISE, il y a 9 ans

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
Semeen, il y a 9 ans

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

JMERISE, il y a 9 ans

table wc_post :

table wc_users:

table subscriptions :

Axis, il y a 9 ans

Et en remplacant tes INNER JOIN par des LEFT JOIN ?

Semeen, il y a 9 ans

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

JMERISE, il y a 9 ans

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