PHP/MYSQL une variable dans une requête
benoit22
-
Bablon Arnaud Messages postés 74 Date d'inscription Statut Contributeur Dernière intervention -
Bablon Arnaud Messages postés 74 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
Merci de m'accorder un peu de votre temps et de votre indulgence.
J'ai un problème que je pense être assez simple mais je débute et malgré de nombreuses recherches, je n'ai pas encore trouvé.
Voilà, j'ai un formulaire
<form name="monform" method="post" action="cible.php">
j'y déclare une liste déroulante,
avec <SELECT name="choix" size="1">
dans le fichier cible.php, il me semble que je récupère bien la valeur de choix
$choix = $_POST['choix'];
echo "choix " . $choix ."<br/>";
cela m'affiche toto
Mon souci est d'utiliser cette variable pour sélectionner des enregistrements dans une table
//Fonctionne et affiche les valeurs
//$req = $bdd->prepare('SELECT champ2 FROM matable WHERE champs1 = \'toto\'');
//Ne renvoie pas de messages d'erreur mais n'affiche plus rien
$req = $bdd->prepare('SELECT champs2 FROM matable WHERE champs1 = ?');
$req->execute(array($_POST['choix']));
J'ai essayé avec
$req = $bdd->prepare('SELECT champs2 FROM matable WHERE champs1 LIKE ?');
$req->execute(array($_POST['choix']));
Cela ne change rien
Je précise que champs1 est de type varchar(255)
S'agit d'un problème de type différent qui rendrait la comparaison toujours négative ?
Faut-il employer la fonction CAST ou strcmp dans le texte de la requête. ?
Ou bien est-ce un problème de ' ou de " employé mal à propos ?
Merci encore de vos conseils
Merci de m'accorder un peu de votre temps et de votre indulgence.
J'ai un problème que je pense être assez simple mais je débute et malgré de nombreuses recherches, je n'ai pas encore trouvé.
Voilà, j'ai un formulaire
<form name="monform" method="post" action="cible.php">
j'y déclare une liste déroulante,
avec <SELECT name="choix" size="1">
dans le fichier cible.php, il me semble que je récupère bien la valeur de choix
$choix = $_POST['choix'];
echo "choix " . $choix ."<br/>";
cela m'affiche toto
Mon souci est d'utiliser cette variable pour sélectionner des enregistrements dans une table
//Fonctionne et affiche les valeurs
//$req = $bdd->prepare('SELECT champ2 FROM matable WHERE champs1 = \'toto\'');
//Ne renvoie pas de messages d'erreur mais n'affiche plus rien
$req = $bdd->prepare('SELECT champs2 FROM matable WHERE champs1 = ?');
$req->execute(array($_POST['choix']));
J'ai essayé avec
$req = $bdd->prepare('SELECT champs2 FROM matable WHERE champs1 LIKE ?');
$req->execute(array($_POST['choix']));
Cela ne change rien
Je précise que champs1 est de type varchar(255)
S'agit d'un problème de type différent qui rendrait la comparaison toujours négative ?
Faut-il employer la fonction CAST ou strcmp dans le texte de la requête. ?
Ou bien est-ce un problème de ' ou de " employé mal à propos ?
Merci encore de vos conseils
A voir également:
- PHP/MYSQL une variable dans une requête
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Expert php pinterest - Télécharger - Langages
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ✓ - Forum Python
- Requête sql pix - Forum Python
1 réponse
je sais pas si mon post est bien arrivé (je le vois pas quand je rafraichis je ré envois)
je te propose une soluce pour le LIKE (ca marche très bien chez moi)
(dans ton post tu ne parles pas du fetchAll)
je te propose une soluce pour le LIKE (ca marche très bien chez moi)
<?php $dbh = new PDO("mysql:dbname=dev;host=127.0.0.1","root",""); $sth = $dbh->prepare('SELECT contact_id FROM cours_contact WHERE contact_email LIKE :email'); $sth->execute(array(':email'=>'%dd%')); $red = $sth->fetchAll(); var_dump($red); ?>
(dans ton post tu ne parles pas du fetchAll)