Pb déclaration variable pour WHERE dans requête sql dans script php
Résolu/Fermé
danielos77
Messages postés
108
Date d'inscription
samedi 18 février 2006
Statut
Membre
Dernière intervention
16 janvier 2024
-
4 avril 2020 à 10:27
yg_be Messages postés 23312 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 novembre 2024 - 4 avril 2020 à 16:05
yg_be Messages postés 23312 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 6 novembre 2024 - 4 avril 2020 à 16:05
A voir également:
- Pb déclaration variable pour WHERE dans requête sql dans script php
- Script vidéo youtube - Guide
- Easy php - Télécharger - Divers Web & Internet
- Vba range avec variable ✓ - Forum VB / VBA
- Requête sql pix - Forum Python
5 réponses
yg_be
Messages postés
23312
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
6 novembre 2024
Ambassadeur
1 552
4 avril 2020 à 11:06
4 avril 2020 à 11:06
bonjour,
as-tu fait echo de la valeur entrée dans cet input? es-tu certain de la récupérer correctement dans ton code PHP?
fais également
tu ne nous montres qu'une petite partie de ton code, l'erreur est peut-être ailleurs.
as-tu fait echo de la valeur entrée dans cet input? es-tu certain de la récupérer correctement dans ton code PHP?
fais également
echo $sql;, pour vérifier que cette requête est bien utilisable.
tu ne nous montres qu'une petite partie de ton code, l'erreur est peut-être ailleurs.
danielos77
Messages postés
108
Date d'inscription
samedi 18 février 2006
Statut
Membre
Dernière intervention
16 janvier 2024
2
4 avril 2020 à 11:28
4 avril 2020 à 11:28
Bonjour yg_be,
Merci de t'intéresser à mon pb.
La valeur entrée dans l'input est bien là car je la récupère dans un popup d'affichage récapitulatif avant d'envoyer les valeurs dans la base.
Par contre, c'est certainement dans la récupération de cette valeur pour la requête que ça doit pêcher... J'utilise (mais sûrement mal) la récupération de la valeur par 'document.getElementById("Num").value;' pour la comparer à une valeur d'un champ de ma base.
--
Merci de t'intéresser à mon pb.
La valeur entrée dans l'input est bien là car je la récupère dans un popup d'affichage récapitulatif avant d'envoyer les valeurs dans la base.
Par contre, c'est certainement dans la récupération de cette valeur pour la requête que ça doit pêcher... J'utilise (mais sûrement mal) la récupération de la valeur par 'document.getElementById("Num").value;' pour la comparer à une valeur d'un champ de ma base.
--
yg_be
Messages postés
23312
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
6 novembre 2024
1 552
4 avril 2020 à 11:39
4 avril 2020 à 11:39
tu ne nous montres qu'une petite partie de ton code, l'erreur est peut-être ailleurs.
si tu récupères la valeur entrée en input dans une variable, pourquoi ne pas utiliser cette variable pour la requête?
fais également
si tu récupères la valeur entrée en input dans une variable, pourquoi ne pas utiliser cette variable pour la requête?
fais également
echo $sql;, pour vérifier que cette requête est bien utilisable, et pour comprendre ce que fait ton code.
danielos77
Messages postés
108
Date d'inscription
samedi 18 février 2006
Statut
Membre
Dernière intervention
16 janvier 2024
2
4 avril 2020 à 12:16
4 avril 2020 à 12:16
Voilà
En mettant les parties php en commentaire, on a bien la valeur de l'input dans la popup en cliquant sur Print.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Test Base de donnée</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script>
function popup()
{
w=open("",'popup','width=400,height=600,toolbar=no,scrollbars=yes,resizable=yes');
w.document.write("<BODY>");
w.document.write("Identifiant : "+document.forms[0].elements["Num"].value+"<BR><BR>");
w.document.write("</BODY>");
w.document.close();
w.print();
}
</script>
</head>
<body>
<form method="post" action="EnvoiInscription.php">
<BR><p>
<input type="text" name="Num" id="Num" maxlength="5" pattern="[0-9]{3}[_][0-9]" required placeholder="000_0" />
</p><BR><BR>
<?php //Connection avec la BDD.
include('secure/config.php');
mysql_connect($SQLhost, $SQLlogin, $SQLpass) or die(mysql_error());
mysql_select_db('ssa.pvm.ulm') or die(mysql_error());
$sql = 'SELECT * FROM Inscriptions LEFT JOIN Stages ON Inscriptions.ChoixStage = Stages.NumStage WHERE Num=document.getElementById("Num").value;
$res = mysql_query($sql) or die('Erreur requête SQL !<br>'.$sql.'<br>'.mysql_error());
?>
<table>
<tr>
<th>N°</th>
<th>Stage</th>
<th>nationale ou locale</th>
</tr>
<?php //On affiche les lignes du tableau une à une à l'aide d'une boucle
while($donnees = mysql_fetch_array($res))
{
?>
<tr>
<td><?php echo $donnees['Num'];?></td>
<td><?php echo $donnees['Stage'];?></td>
<td><?php echo $donnees['Action'];?></td>
</tr>
<?php
} //fin de la boucle, le tableau contient toute la BDD
mysql_close(); //deconnection de mysql
?>
</table>
<BR>
<form method="post" action="EnvoiInscription.php">
<p><input type="button" name="Print" value="Print" onClick="JavaScript:popup();"></form>
<p> </p>
<p><input type="submit" value="Envoyer" size="24" />
</p>
</form>
</body>
</html>
--
En mettant les parties php en commentaire, on a bien la valeur de l'input dans la popup en cliquant sur Print.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>Test Base de donnée</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script>
function popup()
{
w=open("",'popup','width=400,height=600,toolbar=no,scrollbars=yes,resizable=yes');
w.document.write("<BODY>");
w.document.write("Identifiant : "+document.forms[0].elements["Num"].value+"<BR><BR>");
w.document.write("</BODY>");
w.document.close();
w.print();
}
</script>
</head>
<body>
<form method="post" action="EnvoiInscription.php">
<BR><p>
<input type="text" name="Num" id="Num" maxlength="5" pattern="[0-9]{3}[_][0-9]" required placeholder="000_0" />
</p><BR><BR>
<?php //Connection avec la BDD.
include('secure/config.php');
mysql_connect($SQLhost, $SQLlogin, $SQLpass) or die(mysql_error());
mysql_select_db('ssa.pvm.ulm') or die(mysql_error());
$sql = 'SELECT * FROM Inscriptions LEFT JOIN Stages ON Inscriptions.ChoixStage = Stages.NumStage WHERE Num=document.getElementById("Num").value;
$res = mysql_query($sql) or die('Erreur requête SQL !<br>'.$sql.'<br>'.mysql_error());
?>
<table>
<tr>
<th>N°</th>
<th>Stage</th>
<th>nationale ou locale</th>
</tr>
<?php //On affiche les lignes du tableau une à une à l'aide d'une boucle
while($donnees = mysql_fetch_array($res))
{
?>
<tr>
<td><?php echo $donnees['Num'];?></td>
<td><?php echo $donnees['Stage'];?></td>
<td><?php echo $donnees['Action'];?></td>
</tr>
<?php
} //fin de la boucle, le tableau contient toute la BDD
mysql_close(); //deconnection de mysql
?>
</table>
<BR>
<form method="post" action="EnvoiInscription.php">
<p><input type="button" name="Print" value="Print" onClick="JavaScript:popup();"></form>
<p> </p>
<p><input type="submit" value="Envoyer" size="24" />
</p>
</form>
</body>
</html>
--
yg_be
Messages postés
23312
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
6 novembre 2024
1 552
4 avril 2020 à 12:52
4 avril 2020 à 12:52
merci d'utiliser les balises de code quand tu partages du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
dans quelle variable as-tu récupéré la valeur entrée en input?
réutilise cette variable pour la requête.
fais également echo $sql;, pour vérifier que cette requête est bien utilisable, et pour comprendre ce que fait ton code.
dans quelle variable as-tu récupéré la valeur entrée en input?
réutilise cette variable pour la requête.
fais également echo $sql;, pour vérifier que cette requête est bien utilisable, et pour comprendre ce que fait ton code.
danielos77
Messages postés
108
Date d'inscription
samedi 18 février 2006
Statut
Membre
Dernière intervention
16 janvier 2024
2
4 avril 2020 à 14:44
4 avril 2020 à 14:44
Désolé pour l'absence de balise ..
Le tout dans mon fichier ***.php
Je n'ai pas de variable pour récupérer la valeur de l'input puisque j'utilise directement document.getElementById("Num").value;
--
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Test Base de donnée</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <script> function popup() { w=open("",'popup','width=400,height=600,toolbar=no,scrollbars=yes,resizable=yes'); w.document.write("<BODY>"); w.document.write("Identifiant : "+document.forms[0].elements["Num"].value+"<BR><BR>"); w.document.write("</BODY>"); w.document.close(); w.print(); } </script> </head> <body> <form method="post" action="EnvoiInscription.php"> <BR><p> <input type="text" name="Num" id="Num" maxlength="5" pattern="[0-9]{3}[_][0-9]" required placeholder="000_0" /> </p><BR><BR>
<?php //Connection avec la BDD. include('secure/config.php'); mysql_connect($SQLhost, $SQLlogin, $SQLpass) or die(mysql_error()); mysql_select_db('ssa.pvm.ulm') or die(mysql_error()); $sql = 'SELECT * FROM Inscriptions LEFT JOIN Stages ON Inscriptions.ChoixStage = Stages.NumStage WHERE Num=document.getElementById("Num").value; $res = mysql_query($sql) or die('Erreur requête SQL !<br>'.$sql.'<br>'.mysql_error()); ?>
<table> <tr> <th>N°</th> <th>Stage</th> <th>nationale ou locale</th> </tr>
<?php //On affiche les lignes du tableau une à une à l'aide d'une boucle while($donnees = mysql_fetch_array($res)) { ?>
<tr> <td><?php echo $donnees['Num'];?></td> <td><?php echo $donnees['Stage'];?></td> <td><?php echo $donnees['Action'];?></td> </tr>
<?php } //fin de la boucle, le tableau contient toute la BDD mysql_close(); //deconnection de mysql ?>
</table> <BR> <form method="post" action="EnvoiInscription.php"> <p><input type="button" name="Print" value="Print" onClick="JavaScript:popup();"></form> <p> </p> <p><input type="submit" value="Envoyer" size="24" /> </p> </form> </body> </html>
Le tout dans mon fichier ***.php
Je n'ai pas de variable pour récupérer la valeur de l'input puisque j'utilise directement document.getElementById("Num").value;
--
yg_be
Messages postés
23312
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
6 novembre 2024
1 552
4 avril 2020 à 15:39
4 avril 2020 à 15:39
je vois bien que tu utilises directement document..., et je suggère que tu passes par une variable, ce sera plus clair.
fais également echo $sql;, pour vérifier que cette requête est bien utilisable, et pour comprendre ce que fait ton code.
fais également echo $sql;, pour vérifier que cette requête est bien utilisable, et pour comprendre ce que fait ton code.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
danielos77
Messages postés
108
Date d'inscription
samedi 18 février 2006
Statut
Membre
Dernière intervention
16 janvier 2024
2
4 avril 2020 à 15:47
4 avril 2020 à 15:47
J'ai remplacé ma requête par
$sql = "SELECT * FROM Inscriptions LEFT JOIN Stages ON Inscriptions.ChoixStage = Stages.NumStage WHERE Num = '$Num'";
et j'ai bien mon tableau qui s'affiche mais vide ;-(
et echo $sql me retourne
SELECT * FROM Inscriptions LEFT JOIN Stages ON Inscriptions.ChoixStage = Stages.NumStage WHERE Num = ''
--
$sql = "SELECT * FROM Inscriptions LEFT JOIN Stages ON Inscriptions.ChoixStage = Stages.NumStage WHERE Num = '$Num'";
et j'ai bien mon tableau qui s'affiche mais vide ;-(
et echo $sql me retourne
SELECT * FROM Inscriptions LEFT JOIN Stages ON Inscriptions.ChoixStage = Stages.NumStage WHERE Num = ''
--
yg_be
Messages postés
23312
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
6 novembre 2024
1 552
Modifié le 4 avril 2020 à 16:13
Modifié le 4 avril 2020 à 16:13
comprends-tu la requête SQL?
as-tu vérifié ce que retournait
quel est le type du champ Num dans la table?
es-tu au courant que l'extension php mysql est en fin de vie? https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli
as-tu vérifié ce que retournait
echo $num?
quel est le type du champ Num dans la table?
es-tu au courant que l'extension php mysql est en fin de vie? https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli