j'ai un problème car j'ai car j'ai un script mais j'ai plusieur cote à mettre et je ne sais pas comment les écrire dans mon script pour l'instant sa me donne un erreur car mes guillemets ne sont pas bien saisis.
Voici mon code pouvee vous m'aider?
j'ai un problème car j'ai car j'ai un script mais j'ai plusieur cote à mettre et je ne sais pas comment les écrire dans mon script pour l'instant sa me donne un erreur car mes guillemets ne sont pas bien saisis.
Voici mon code pouvee vous m'aider?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $sql="select loc_libelle from locaux, ailes where aile_libelle = ".$_POST['ess']." "; $rep = mysql_query($sql) or die ('erreur sur la selection'.mysql_error());
Avec le code, ca nous aiderait plus..
Sinon, si tu veux mettre des double quotes dans une chaine php , precede ces doubles-quotes d'un \. Les simple quotes passent sans soucis
Salut
Pour des données venant de l'utilisateur (c'est le cas pour $_POST et $_GET), utilise toujours intval() ou addslashes() sur tes variables dans les requêtes.
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
est-ce que ton champ aide_libelle est un varchar?? si oui alor c'est normal que tu ai un problème de guillemet essaye ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <? $sql="select loc_libelle from locaux, ailes where aile_libelle = '".$_POST['ess']."' "; $rep = mysql_query($sql) or die ('erreur sur la selection'.mysql_error()); ?>
et tu liste 2 tables dans ta requete il manquerait pas une jointure??
Ah.. les messages se sont croises
Au premier coup d'oeil, il n'y a pas d'erreurs de quotes..
Sinon petite remarque, pas besoin de faire une jointure avec une seconde table d'apres les conditions de ta requete...
S'il liste deux table dans sa requete une jointure sera forcement necessaire!
Ou plutot ne faire sa requete que dans une seule table... enfin ca depend du contexte
apparemment là il fait appel à deux tables, son loc_libelle est dans la table locaux et son champ aile_libelle est dans la table ailes, donc il faut faire une jointure c'est obligatoire apres peut etre que ce n'est pas ce que je crois... Alors tioseb tu en est ou?
PS : N'oubli pas de mettre Resolu si tu trouve la solution, meme tous seul.
nan ce n'est pas vraiment résolu mais je n'est pas besoin de faire de jointure car le ".$_POST['ess']." et la jointure mais vous n'êtes pas censé le savoir donc désolé de ne pas l'avoir dis.
Sinon la véritable but de ce scipt est d'afficher dans une zone de liste des valeur de ma base de donnée et en fonctionde la valeur choisie la deuxième zone de liste doit prendre des valeur avec cette requête mais mes champs input type="text" ne garde pas la valeur que la zone de liste leur donne comment faire?
voici mon code
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 <script language="JavaScript"> function affiche() { alert("Vous avez changé la valeur!"); sel = document.getElementById('change'); inp = document.getElementById('ess'); inp.value = sel.options[sel.selectedIndex].value; // ou .text document.forms['formChange'].submit(); } </script> </head> <body> <form name="formChange" method="POST"> <table> <tr> <td> <?php // mise en forme de la requête sur la table ailes $sql ="select * from ailes order by aile_libelle;"; // exécution de la requête $reponse = mysql_query($sql) or die("Problème lors de la lecture d'une aile! Erreur n° ".mysql_errno()." Libellé de l'erreur : ".mysql_error()); // mise en forme de la liste déroulante echo ('<select name="change" id="change" onChange="affiche()">'); echo "<option value='0' >Choisir une aile</option>"; // lecture de chaque aile while( $ligne=mysql_fetch_array($reponse) ) { // $_POST["choix_aile"] contient le libellé de l'aile sélectionné dans la liste if ($_POST["choix_aile"]==$ligne['aile_libelle'] ) // oui : dans ce cas : grâce à l'attribut selected on se positionne sur l'aile sélectionné echo "<option value='".$ligne['aile_libelle']."' selected>".$ligne['aile_libelle']."</option>"; else // non echo "<option value='".$ligne['aile_libelle']."'>".$ligne['aile_libelle']."</option>"; } echo "</select>"; ?> </td> <td> <input type="text" name="ess" id="ess" /> </td> </tr> <tr> <td> <?php $sql="select loc_libelle from locaux, ailes where aile_libelle = '".$_POST['ess']."' "; $rep = mysql_query($sql) or die ('erreur sur la selection'.mysql_error()); ?> <select name='choix_local' id='choix_local' onChange='affiche2()' > <option value='0' >sélectionnez un local</option> <?php while($ligne = mysql_fetch_array($rep)) { // $_POST["choix_local"] contient le libellé du local sélectionné dans la liste if ($_POST["choix_local"]==$ligne['loc_libelle'] ) // oui : dans ce cas : grâce à l'attribut selected on se positionne sur le local sélectionné echo "<option value='".$ligne['loc_libelle']."' selected>".$ligne['loc_libelle']."</option>"; else // non echo "<option value='".$ligne['loc_libelle']."'>".$ligne['loc_libelle']."</option>"; } ?> </select> </td> <td> <input type="text" name="essai" id="essai" /> </td>
ma deuxième zone de liste utilise une fonction javascript affiche2(), je ne l'ai pas mise car c'est la même chose que la première fonction affiche()
pour alimenter ta deuxième liste tu peux peut-etre utiliser la methode PHP SELF voici une idée :
Pour ton formulaire tu met <form name="xxx" method="POST" action="<? echo $PHP_SELF; ?>">
Je ne sais pas si ca peut t'aider A+
Partager