Page 1 sur 1

ajout de donnée dans une table

Posté : 21 août 2006, 22:05
par Lorran
Bonjour,

je cherche à m'exercer sur l'exercice qui suit.
Le but est au final de récupérer mes codes et de les adapter pour des projets de site.

J'ai créé non sans mal un formulaire avec des listes déroulantes générées par lecture des données existantes dans ladite table et sélection des différentes valeurs sans doublon.

J'ai créé un fichier php censé ajouter les informations postées par le biais du formulaire dans la table.

Mon code ne renvoie aucune erreur.
Ce qui est déja formidable.

Là ou ça coince, c'est qu'aucune donnée n'est rajoutée dans la table.

Et la franchement ça le fait nettement moins

J'ai fait quelques tests mais pour l'instant, je ne vois aucun cause à ce problème.

Je vous joins le code de mon formulaire:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>saisie de donnée par un formulaire pour écriture dans une base de donnée</title>
</head>

<body>
<p>

<p>
Veuillez indiquer le nom du jeu:
</p>

<form action="14c_ecriture.php" method="post">
<p>
<input type="text" name="nom" />
</p>
<p>
Veuillez indiquer le possesseur du jeu:
</p>
<?php
mysql_connect("localhost", "root", ""); // Connexion à MySQL
mysql_select_db("test"); // Sélection de la base test
$rep_possesseurs=mysql_query("SELECT DISTINCT possesseur FROM jeux_videos");
echo'<select name="possesseurs">';
while($tab_possesseurs=mysql_fetch_array($rep_possesseurs))
{
	echo '<option value="'.$tab_possesseurs['possesseur'].'">'.$tab_possesseurs['possesseur'].'</option>';
}
echo'</select>';

?>


<p>
Veuillez indiquer le nom de la console sur laquelle on peut utiliser ce jeu:
</p>
<?php

$rep_console=mysql_query("SELECT DISTINCT console FROM jeux_videos");
echo'<select name="console">';
while($tab_console=mysql_fetch_array($rep_console))
{
	echo '<option value="'.$tab_console['console'].'">'.$tab_console['console'].'</option>';
}
echo'</select>';

mysql_close();
?>
</p>
<p>
Veuillez indiquer le prix du jeu:
</p>
<p>
<input type="text" name="prix" size="20" />
</p>
<p>
Veuillez indiquer le nombre de joueur maximale sur ce jeu:
</p>

<p>
<input type="text" name="nbre_joueurs_max" size="20" />
</p>
<p>
Veuillez commenter ce jeu:
</p>

<textarea name="commentaires" rows="8" cols="45">
Votre commentaire sur le jeu ici.
</textarea>
<p>

<p>
<input type="submit" value="Valider"
</p>
</form>
</body>

</html>
et voici le code du script d'ajout des données:

<?php

// --------------- Etape 1 -----------------
// Si un message est envoyé, on l'enregistre
// -----------------------------------------

if (isset($_POST['nom']) AND 
    isset($_POST['possesseur']) AND 
    isset($_POST['console']) AND 
    isset($_POST['prix']) AND 
    isset($_POST['nbre_joueurs_max']) AND 
    isset($_POST['commentaires']))
{
   
    $nom = htmlentities($_POST['nom'], ENT_QUOTES); // On utilise htmlentities par mesure de sécurité
    $possesseur = htmlentities($_POST['possesseur'], ENT_QUOTES); // On utilise htmlentities par mesure de sécurité
	$console = htmlentities($_POST['console'], ENT_QUOTES); // On utilise htmlentities par mesure de sécurité
	$prix = htmlentities($_POST['prix'], ENT_QUOTES); // On utilise htmlentities par mesure de sécurité
	$nbre_joueurs_max = htmlentities($_POST['nbre_joueurs_max'], ENT_QUOTES); // De même pour le message
	$commentaires = htmlentities($_POST['commentaires'], ENT_QUOTES); // De même pour le message
    $commentaires = nl2br($commentaires); // Pour le message, comme on utilise un textarea, il faut remplacer les Entrées par des <br />


mysql_connect("localhost", "root", "");
mysql_select_db("test");  
    // On peut enfin enregistrer 
    mysql_query("INSERT INTO jeux_videos(ID, nom, possesseur, console, prix, nbre_joueurs_max, commentaires) 
                 VALUES('', '".$nom."', '".$possesseur."', '".$console."', '".$prix."', '".$nbre_joueurs_max."', '".$commentaires."' )")
	or die(mysql_error()); 
	
mysql_close();
}
?>
merci de m'indiquer si vous voyez une erreur.....

Lorran

Posté : 22 août 2006, 00:29
par Ryle
N'hésites pas à coller des echo et print_r() pour vérifier tes valeurs et t'assurer des endroits par lesquels tu passes.

Un echo juste après le if (isset($_POST['nom']) AND ... ) te permet de voir que tu ne rentre pas dedans. C'est donc que l'une des conditions est fausse.

La fonction print_r($_POST); te permet de vérifier les valeur passée via POST (nom et valeur). Tu peux ainsi voir par exemple, que ton formulaire envoi une variable nommée "possesseurs" tandis que tu testes une variable nommée "possesseur" ;)

Résolu

Posté : 22 août 2006, 21:04
par Lorran
Yaisse!!

Génial, ça marche..


Merci beaucoup......

Lorran