Php : requete en fonction de variables
benoit22
-
chico200987 Messages postés 791 Date d'inscription Statut Membre Dernière intervention -
chico200987 Messages postés 791 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai une résultat de requête incorrect qui je pense est due à une comparaison de deux variables de types différents.
Auriez-vous l'amabilité de m'indiquer si mon interprétation est juste où si l'erreur se situe ailleurs.
En tout cas, merci.
par la méthode POST, je transmets le choix d'une liste déroulante à un fichier cible.php
J'ai vérifié que la valeur passe en faisant
$choix = $_POST['choix'];
echo "choix " . $choix ."<br/>";
J'obtiens
choix toto
Je veux utiliser cette variable pour trier une table
Si la valeur du champ est en dur dans la requête mes informations s'affichent
$req = $bdd->prepare('SELECT champs2 FROM matable WHERE champs1 = \'toto\'');
Si je trie sur ma variable, la requête ne me renvoie aucun résultat
$req = $bdd->prepare('SELECT champs2 FROM matable WHERE champs1 = ?');
$req->execute(array($_POST['choix']));
Je précise que champs1 est de type varchar(255)
J'ai aussi essayé avec
$req = $bdd->prepare('SELECT champs2 FROM matable WHERE champs1 LIKE ?');
$req->execute(array($_POST['choix']));
Est-ce que j'essaie de comparer deux variables de types différents ?
Dans ce cas, cela expliquerait peut-être que je n'obtienne aucun résultat...
Dois-je procéder à un CAST ou utiliser la fonction strcmp, mais dans les deux cas, je ne sais pas comment inclure cela dans la requête. Faut-il faire deux requêtes successives ?
Merci de votre aide
J'ai une résultat de requête incorrect qui je pense est due à une comparaison de deux variables de types différents.
Auriez-vous l'amabilité de m'indiquer si mon interprétation est juste où si l'erreur se situe ailleurs.
En tout cas, merci.
par la méthode POST, je transmets le choix d'une liste déroulante à un fichier cible.php
J'ai vérifié que la valeur passe en faisant
$choix = $_POST['choix'];
echo "choix " . $choix ."<br/>";
J'obtiens
choix toto
Je veux utiliser cette variable pour trier une table
Si la valeur du champ est en dur dans la requête mes informations s'affichent
$req = $bdd->prepare('SELECT champs2 FROM matable WHERE champs1 = \'toto\'');
Si je trie sur ma variable, la requête ne me renvoie aucun résultat
$req = $bdd->prepare('SELECT champs2 FROM matable WHERE champs1 = ?');
$req->execute(array($_POST['choix']));
Je précise que champs1 est de type varchar(255)
J'ai aussi essayé avec
$req = $bdd->prepare('SELECT champs2 FROM matable WHERE champs1 LIKE ?');
$req->execute(array($_POST['choix']));
Est-ce que j'essaie de comparer deux variables de types différents ?
Dans ce cas, cela expliquerait peut-être que je n'obtienne aucun résultat...
Dois-je procéder à un CAST ou utiliser la fonction strcmp, mais dans les deux cas, je ne sais pas comment inclure cela dans la requête. Faut-il faire deux requêtes successives ?
Merci de votre aide
A voir également:
- Php : requete en fonction de variables
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
cf : https://www.php.net/manual/fr/pdo.prepare.php#90209