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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Comment invoquer la colonne d'une table en tant que variable

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

par ynx » 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.

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

par max303 » 09 déc. 2021, 13:28

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

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

par max303 » 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

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

par ynx » 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.

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

par max303 » 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? :)