Comment invoquer la colonne d'une table en tant que variable

Eléphant du PHP | 65 Messages

06 déc. 2021, 22:51

Bonjour, je cherche à faire appel à la colonne "nom" de ma table categories. En gros ma requête est la suivante:

Code : Tout sélectionner

A.titre LIKE "%'.$q.'%
mais je voudrais également lui ajouter la colonne "nom" de ma table categories, comme ça, ça devient

Code : Tout sélectionner

A.titre LIKE "%'.$q.'% OR A.titre LIKE "%'.$categories[nom].'%
. Quelqu'un peut me corriger, s'il vous plait? :)

ynx
Mammouth du PHP | 586 Messages

07 déc. 2021, 14:59

Bonjour,

Quelque chose comme ceci ?
$query = "SELECT * FROM table A WHERE A.titre LIKE '%" . $q . "%' OR A.titre LIKE '%" . $categories['nom'] . "%'";
Tu devrais utiliser une requête préparée avec des marqueurs ou utiliser les fonctions pour échapper les caractères réservés en sql (PDO::quote() ou mysqli_real_escape_string() selon l'API utilisé) pour éviter les injections sql.

Eléphant du PHP | 65 Messages

07 déc. 2021, 18:32

Bonjour,

Quelque chose comme ceci ?
$query = "SELECT * FROM table A WHERE A.titre LIKE '%" . $q . "%' OR A.titre LIKE '%" . $categories['nom'] . "%'";
Tu devrais utiliser une requête préparée avec des marqueurs ou utiliser les fonctions pour échapper les caractères réservés en sql (PDO::quote() ou mysqli_real_escape_string() selon l'API utilisé) pour éviter les injections sql.
Bonjour,

Quelque chose comme ceci ?
$query = "SELECT * FROM table A WHERE A.titre LIKE '%" . $q . "%' OR A.titre LIKE '%" . $categories['nom'] . "%'";
Tu devrais utiliser une requête préparée avec des marqueurs ou utiliser les fonctions pour échapper les caractères réservés en sql (PDO::quote() ou mysqli_real_escape_string() selon l'API utilisé) pour éviter les injections sql.
Bonjour ynx, en fait j'ai déjà la requête

Code : Tout sélectionner

$sql = 'SELECT A.* ,C.* ,I.* FROM annonces A LEFT JOIN categories C ON C.id = A.id_categorie INNER JOIN images_annonces I ON A.id= I.id_annonce WHERE (A.titre LIKE "%'.$q.'%" AND C.nom LIKE "%'.je ne sais pas quoi mettre ??????.'%")';
sauf que je n'ai pas de variables qui s'appelle catégorie, sinon ça:

Code : Tout sélectionner

$id_categorie= ($_POST['categorie']);
.
Et moi je cherche une $categorie qui sera égale au nom de la table categories, pour faire un LIKE

Eléphant du PHP | 65 Messages

09 déc. 2021, 13:28

Auriez-vous une solution, s'il vous plaît?

ynx
Mammouth du PHP | 586 Messages

09 déc. 2021, 14:26

D'où vient la variable $q utilisée dans la requête sql ? D'un formulaire html ?
Le nom de la catégorie à utiliser dans la requête doit également provenir du formulaire html ? Si oui, tu devrais avoir un input dans le formulaire html pour le nom de la catégorie que tu pourras récupérer en php via la variable $_POST correspondant à cet input.