Page 1 sur 1

Mes variables ne s'ajoutent pas a ma BDD

Posté : 06 mai 2009, 16:03
par SinBert
Bonjours,
Je ne savais pas ou poster ce message vu qu'il va comprend du php et html =S

J'expose mon problème :
J'ai créer un classement, peu importe de quoi ce sont mes variables qui vont être importantes,
J'ai donc créer un formulaire html qui comprend "forumname"(texte), "ign"(texte) et "commentaire" (long texte = textarea).

Source du formulaire :

Code : Tout sélectionner

<form method="post" action="ajout.php"> <font color="#e9c054">Nom de forum :</font><br><input type="text" name="forumname"> <br> <font color="#e9c054">IGN : </font><br><input type="text" name="ign"> <br> <br> <font color="#e9c054">Commentaire :</font> <br> <TEXTAREA NAME="commentaire" COLS=25 ROWS=5></TEXTAREA><br> <br><br> <input type="submit" value="Envoyer"> <input type="reset" name="effacer" value="effacter">
Donc a présent, tout va bien, la page me redirige vers "ajout.php", que voici :

Code : Tout sélectionner

<?php $forumname = $_POST['forumname']; $ign = $_POST['ign']; $commentaire = $_POST['commentaire']; $reglement = $_POST['reglement']; $connect = mysql_connect ( '', '', '' ) or die("Erreur de connexion au serveur"); mysql_select_db('', $connect) or die("Erreur de connexion à la base"); mysql_query("INSERT INTO dragotaka_ranking(id, forumname, ign, commentaire) VALUES('', '$forumname', '$ign', '$commentaire')") or die(mysql_error()); mysql_close(); header("Location:done.htm"); ?>
En sachant que les identifiants de BDD on été volontairement omis et qu'ils sont correct.

Jusque là, tout (a l'air de?) marche.
C'est maintenant que je ne comprend plus. Je fais un tableau qui est censé m'afficher mes variables, seulement, les variables ne s'affichent pas, seul les tableau (correspondant exactement au nombre d'entrées) sont présent oO.

Pour les plus curieux, voici le script d'affichage :

Code : Tout sélectionner

while ($donnees = mysql_fetch_array($reponse) ){ <center> <table border="1" width='30%' bordercolordark="#e9c054" bordercolorlight="#e9c054" bordercolor="#e9c054" name="classement"> <tr> <td rowspan='3'><?php $_POST['id']; ?>*</td><td colspan='3'><?php $_POST['forumname']; ?></td> <td>Image : N/A </td> </tr> <tr> <td><?php $_POST['ign']; ?></td> </tr> <tr> <td><?php $_POST['commentaire']; ?></td> </tr> </table> </center> <?php }
J'ai aussi fais un champs de recherche(pas sur le script) pour la variable "ign". Si je recherche le nom "SinBert" et que j'avais ajouté ce nom dans la BDD, il m'affichera un tableau...Vide T T
(mais cela prouve que la variable existe, mais qu'elle ne s'affiche pas pour une raison encore inconnue)

J'ai déjà demander sur d'autres forum, et on m'a dit qu'il fallait "remplir et soumettre le formulaire". N'ayant pas compris les termes, je demande : sans réponse T T

C'est pourquoi je me réfère a vous, qu'y m'avez l'air sympa (a première vue :lol: )

Merci d'avance!

PS : dans les scripts poster, j'ai aussi omis les protection pour les Mysql injection etc pour rendre la lecture plus simple.

Re: Mes variables ne s'ajoutent pas a ma BDD

Posté : 06 mai 2009, 16:06
par zeus
Je ne savais pas ou poster ce message vu qu'il va comprend du php et html =S
Déplacé pour toi ;)

Posté : 06 mai 2009, 16:25
par Ryle
La première devrait être de vérifier directement dans la base de données pour savoir si c'est l'enregistrement qui plante ou la lecture qui pose problème, et ainsi savoir où chercher. A vue de nez, je dirais que tes INSERT fonctionnent bien et que le problème survient lorsque tu parcours la table.

En effet, tu dois avoir un SELECT et un mysql_query() pour lire les infos de ta base de données, et dont tu stockes le résultat dans la variable $reponse :
while ($donnees = mysql_fetch_array($reponse) ) 
Jusque là, pas de problème, tu utilises une boucle while pour parcourir chaque enregistrement retourné par ta base de données, et la fonction mysql_fetch_array() (bien qu'un _assoc() serait à mon avis plus indiqué) pour générer un tableau associatif te permettant de récupérer chaque couple colonne => valeur, de ton enregistrement.

La encore, tout va bien. Tu stockes ce tableau dans la variable $donnees, et c'est là que ça commence à ne plus aller. Au lieu d'utiliser les valeurs du tableau $donnees['nom_du_champ'] tu demandes à php d'afficher les valeurs qu'il a reçu en post :
<td rowspan='3'><?php $_POST['id']; ?>*</td>
    <td colspan='3'><?php $_POST['forumname']; ?></td>
Sauf que forcement, tu n'as rien envoyé via la méthode post, et quand bien même, ce ne sont pas les valeurs que tu voudrais afficher ici :)

Posté : 06 mai 2009, 17:27
par SinBert
Effectivement, il y avais une erreur a ce niveau.

J'ai donc modifier mon code :

Code : Tout sélectionner

while ($donnees = mysql_fetch_array($reponse) ){ ?> <center> <table border="1" width='30%' bordercolordark="#e9c054" bordercolorlight="#e9c054" bordercolor="#e9c054" name="classement"> <tr> <td rowspan='3'><?php print("$donnees['id'];"); ?>*</td><td colspan='3'><?php print("$donnees['forumname'];"); ?></td> <td>Image : N/A </td> </tr> <tr> <td><?php print("$donnees['ign'];"); ?></td> </tr> <tr> <td><?php print("$donnees['commentaire'];"); ?></td> </tr>
Je ne savais pas si le ";" était néssessaire dans

Code : Tout sélectionner

print("$donnees['ign'];");
Donc j'ai essayé sans : même erreur. Je les ai donc laissé.


Mais maintenant, voici ce que sa m'affiche :
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in...
Perso je préfère une erreur que le non-affichage de mes variables.
M'enfin, si quelqu'un trouvait la solution ;)

Posté : 06 mai 2009, 18:28
par Elie
Bah enleve les :
<?php echo $donnees['commentaire']; ?>

Posté : 06 mai 2009, 18:39
par SinBert
Ok, maintenant sa marche!

Merci beaucoup a vous tous!