Valeurs de formulaire qui sont des enregistrements SQL

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 : Valeurs de formulaire qui sont des enregistrements SQL

par mere-teresa » 13 avr. 2006, 16:25

Si tu as fait CTRL + U tu ne dois pas voir les $ du PHP !!!!

par DébutantPHP » 13 avr. 2006, 16:11

Non c'est vrai j'ai voulu mettre la liste toute seule pour voir juste l'affichage

Maintenant c'est corrigé et ça marche toujours pas

Voilà j'ai frait CTRL-U et voila le résulat de la page ou la liste est vide

Code : Tout sélectionner

<html> <head> <title></title> </head> <body> <form> <select name="debite"> <? $db = mysql_connect('imysql02','i3752636','muyh6uw0ndulboyj'); mysql_select_db('i3752636',$db); $SQL = "SELECT * FROM bdargent"; $res = mysql_query($SQL); while($val=mysql_fetch_array($res)) { echo "<option value=\"$val['noms']\">"[/b].$val["noms"].[b]"</option>\n"; } mysql_close(); ?> </select> </form> </body> </html>

par sadeq » 13 avr. 2006, 14:31

Là où tu vois ta liste déroulante vide, peux-tu faire CTRL + U (Voir la source HTML) et nous le coller ici ?

edit : pour sadeq : il a dit qu'il le faisait plus haut dans le fichier...la connexion à la base
Je m'endoute, car il refait la connexion dans son script imbriqué dans HTML, il doit ouvrir sa base après la connexion mysql_connect :wink:

par mere-teresa » 13 avr. 2006, 14:25

Là où tu vois ta liste déroulante vide, peux-tu faire CTRL + U (Voir la source HTML) et nous le coller ici ?

edit : pour sadeq : il a dit qu'il le faisait plus haut dans le fichier...la connexion à la base

par sadeq » 13 avr. 2006, 13:34

t'as oublié d'ouvrir la base de données avec mysql_select_db("tabase") avant de lancer l'ordre d'exécution de la requête et après la connexion.

par DébutantPHP » 13 avr. 2006, 13:15

Voila j'ai fait comme tu m'as dit en corrigeant le code suivant echo
En plus j'ai mis ce formulaire seul sur un fichier, l'execution du formulaire n'est pas importante c'est l'affichage le problème

Avec le code suivant la boite de la liste s'affiche avec un format réduit au maximum, lorsque je veux la dérouler il n'y a rien a l'intérieur

Code : Tout sélectionner

<html> <head> <title></title> </head> <body> <form> <select name="debite"> <? $db = mysql_connect('imysql02','i3752636','muyh6uw0ndulboyj'); $SQL = "SELECT * FROM bdargent"; $res = mysql_query($SQL); while($val=mysql_fetch_array($res)) { echo "<option value=\"$val['noms']\">"[/b].$val["noms"].[b]"</option>\n"; } mysql_close(); ?> </select> </form> </body> </html>

par sadeq » 13 avr. 2006, 12:59

Voila j'ai suivit ton conseil en commençant par ...

Code : Tout sélectionner

<form> //d'autres input <select name="debite"> <? $SQL = "SELECT * FROM bdargent"; $res = mysql_query($SQL); while($val=mysql_fetch_array($res)) { echo "<option value="$val["noms"]">".$val["noms"]."</option>\n"; } ?> </select> </form>
...
Un p'ti problème dans l'echo : les guillemets successifs dans la même chaine PHP sont source d'erreurs, on dit il faut les "échapper" terme barbare qui veut dire les marquer par un \ pour signifier qu'il s'agit d'un caractère fesant partie de la chaine et non un délimiteur.

Correction:
tes chaines affichées sont :
echo "<option value="$val["noms"]">".$val["noms"]."</option>\n";

L'erreur est dans la première chaine en gras, elle contient une succession de guillemets ; la correction donne :
"<option value="$val['noms']">"

Les guillemets internes à échapper sont celles de la clause "value="
par contre l'index nommé du tableau $val peut être délimité par les quotes pour éviter toute ambiguité.

Résultat :
echo "<option value="$val['noms']">".$val["noms"]."</option>\n";
En plus, pour que ce programme fonctionne, il faut nommer la page avec une extension .PHP et il est conseillé de commencer toujours un bloc de code PHP par la signature <?php et non <? tout court pour lever toute ambiguité quant au mappage vers l'interpréteur PHP chargé sur le serveur Web.

par DébutantPHP » 13 avr. 2006, 12:52

J'ai ça (dsl j'avais pas compris ça)

Code : Tout sélectionner

<html> <head> <title></title> </head> <body> <form ACTION="verif.php" METHOD=POST> //d'autres input <select name="debite"> <? $db = mysql_connect('imysql02','i3752636','muyh6uw0ndulboyj'); $SQL = "SELECT * FROM bdargent,noms"; $res = mysql_query($SQL); while($val=mysql_fetch_array($res)) { echo "<option value="$val["noms"]">"$val["noms"]"</option>\n"; } mysql_close(); ?> </select> </form> </body> </html>

par mere-teresa » 13 avr. 2006, 12:48

Dans MSIE ou Firefox ou autre.., tu affiches ta page et tu fais afficher la source:)

par DébutantPHP » 13 avr. 2006, 12:43

En faisant SELECT * FROM bdargent j'obtient bien les données

Mais :oops: j'ai pas compris ce que tu dis : "afficher la source", car si c'est dans l'AdminSQL ça marche bien et je voit nettement tous ce que je veux dans mon formulaire

par mere-teresa » 13 avr. 2006, 12:33

Et quand tu fais afficher la source, qu'as tu ?

par DébutantPHP » 13 avr. 2006, 12:29

Pour le nom de la colonne (du champs) c'est bel et bien "noms" (et pas "nom") donc le problème vient pas de là

Enssuite je suis chez iFrance et leur administrateur de SQL je le connais pas mais il est pas mal

par mere-teresa » 13 avr. 2006, 12:26

Bon début !

Vérifie le nom de colonne (noms) de ta table, et as-tu installé PHPMyAdmin ou autre ?
Pour vérifier que ta requête retourne des enregistrements :) que donne :
SELECT * FROM bdargent

Tu n'as pas besoin de te reconnecter à ta bdd, et si tu avais besoin de le faire, tu aurais une erreur de MySQL

par DébutantPHP » 13 avr. 2006, 12:23

Voila j'ai suivit ton conseil en commençant par l'HTML
ça donne donc
debite => c'est ma variable
bdargent => ma table sql
noms => le champs de la table

Code : Tout sélectionner

<form> //d'autres input <select name="debite"> <? $SQL = "SELECT * FROM bdargent"; $res = mysql_query($SQL); while($val=mysql_fetch_array($res)) { echo "<option value="$val["noms"]">".$val["noms"]."</option>\n"; } ?> </select> </form>
Donc la liste se crèt bien mais reste vide sans aucun choix

Je sais pas si il faut a chaque fois que j'ouvre un scrip php <? ?> , se connecter a la base de données car je l'ouvre déjà plus haut dans le fichier sans la fermer. Donc j'ai essayer aussi en ouvrant et fermant a chaque fois et ça ne marche toujours pas

par mere-teresa » 13 avr. 2006, 11:48

Dans ma signature, j'ai mis :Toujours commencer par le HTML qu'on veut obtenir....toujours !
Cela signifie que avec les résultats de ta base de données (que tu sais donc mettre dans des variables PHP) tu veux faire une chaîne de caractères, qui sera du HTML, et qui sera le HTML qui fait une liste déroulante.