PHP/MySQL

Salut, Est ce que quelqu'un pourrait m'aider, J'ai créer un formulaire en php ,mais lorsque ;après avoir entré les champs du formulaire et cliquer sur enregistrer ,la page du formulaire se réaffiche sans enregistrer les champs de mon formulaire dans ma base MySQL.
Quelqu'un auait-il une solution? Merci d'avance
voici mon code php:

<?
if (isset($_POST['enregistrer'])){

//récupération et traitement des valeurs :
$Artist=$_POST['Artist'];
$Titre=$_POST['Titre'];
$Annee=$_POST['Annee'];
$Genre=$_POST['Genre'];

//connexion à la base de donnée
mysql_connect("localhost","root","") or die ("Erreur de connexion");

//Sélection de la base de donnée
mysql_select_db("albums") or die("Erreur de sélection de la base de donnée");

// envoi à la base de données
// on utilise l'instruction insert into pour ajouter les nouvelles données
$req="INSERT INTO music ( `Artist` , `Titre` , `Annee` , `Genre` )
values('$Artist', '$Titre', '$Annee','$Genre')";
$result=mysql_query($req) or die (mysql_error());
echo "Données insérées";

mysql_close(); // Pour fermer l'accès

}
?>
Configuration: Windows XP
Internet Explorer 7.0

5 réponses

  1. bonojour, il te faut un point virgule à ta requete sql.

    $req="INSERT INTO music ( `Artist` , `Titre` , `Annee` , `Genre` )
    values('$Artist', '$Titre', '$Annee','$Genre')";

    change en

    $req="INSERT INTO music ( `Artist` , `Titre` , `Annee` , `Genre` )
    values('$Artist', '$Titre', '$Annee','$Genre');";

    et en faisant ton code propre en concaténation

    $req="INSERT INTO music ( `Artist` , `Titre` , `Annee` , `Genre` )
    values(' ".$Artist." ', ' ".$Titre." ', ' ".$Annee." ',' ".$Genre." ');";

    je sais ya beaucoup de guillements et ça induit en erreur.

    1. Salut ,j'ai essayé de faire ce que tu as dit,mais j'ai toujours le meme problème!!!

      peut etre que l'erreur viens du formulaire:

      <form method="post" action="">

      <table border=1 align=center>
      <tr>
      <td colspan=2>Merci de m'indiquer :</td>
      </tr>
      <tr>
      <td width="272">Artist: 
      <input type="text" name="Artist" size="30"></td>
      <td width="252">Titre: 
      <input type="text" name="Titre" size="30"></td>
      <td width="184">Annee: 
      <input type="text" name="Annee" size="10"></td>
      </tr>
      <tr>
      <td height="62">Genre: 
      <input type="text" name="Genre" size="20"></td>
      <td><input type="submit" value="enregistrer"></td>
      </tr>
      </table>
      </form><br><br>
      1. Essai d'ajouter dans ton formulaire :
        <input type="hidden" name="enregistrer" value="1">
        
        1. Pas besoin de hidden, il suffit simplement de mettre ce name à ton submit.

          Le point virgule n'est pas nécessaire, puisque mysql_query() ne peut traiter qu'une seule reqûete.

          Evite l'utilisation des short tags(ils sont appelés à disparaitre), au lieu de <? utilise <?php

          /!\ Et protège tes requêtes /!\

          C'est vital.
          1. c'est bon j'ai trouvé:
            j'ai oublié name="enregistrer" dans <input type="submit" value="enregistrer">

            et ca donne ceci:
            <input type="submit" name="enregistrer" value="enregistrer">