Page 1 sur 1

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

Posté : 06 déc. 2021, 22:51
par max303
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? :)

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

Posté : 07 déc. 2021, 14:59
par ynx
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.

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

Posté : 07 déc. 2021, 18:32
par max303
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

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

Posté : 09 déc. 2021, 13:28
par max303
Auriez-vous une solution, s'il vous plaît?

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

Posté : 09 déc. 2021, 14:26
par ynx
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.