Formulaire php et mysql

siloul -  
Reivax962 Messages postés 3742 Statut Membre -
Bonjour,
J'ai un formulaire de données d'un utilisateur que je veux les enregistrer dans une base, mais lorsque je clique sur envoyer il ne se passe rien
voilà mon script aidez moi svp à trouver l'erreur
<?
require('connect.php');
$np = $_POST['np'];
$login = $_POST['login'];
$passwd = $_POST['passwd'];
$grade = $_POST['grade'];
if (isset($_POST['np']) && isset($_POST['login']) && isset($_POST['passwd']) && isset($_POST['grade']))
{
$sql = 'INSERT INTO utilisateur VALUES ($login, $passwd, $np, $grade)';
$res = mysql_query($sql;
}
?>

3 réponses

  1. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    Bonjour,

    $sql = 'INSERT INTO utilisateur VALUES ($login, $passwd, $np, $grade)';
    $res = mysql_query($sql;

    Trois problèmes.
    1 - Quand tu utilises des ' pour tes chaînes de caractères, les variables ne sont pas remplacées par leur valeur.
    2 - J'imagine que tes colonnes login et password sont des caractères et pas des chiffres ; dans ce cas, il faut penser à mettre les quote pour ta requête : '
    3 - il manque une parenthèse dans ton mysql_query.

    Tout ceci étant dit, je remplacerais donc les deux lignes par :

    $sql = "INSERT INTO utilisateur VALUES ('$login', '$passwd', $np, $grade)";
    $res = mysql_query($sql);

    Il faut mettre les ' autour de $np et $grade aussi si la base de données attend des chaines de caractères.

    Xavier

    PS : de façon générale, quand tu as un problème avec tes requêtes SQL depuis PHP, rajoute la ligne suivante juste après le mysql_query :
    echo mysql_error();
    Ça t'affichera les erreurs que renvoie la base de données, s'il y en a.
    0
    1. siloul
       
      merci, j'ai corrigé ces problèmes mais il insère toujours rien
      0
    2. Reivax962 Messages postés 3742 Statut Membre 1 011
       
      Quels sont les messages d'erreur
      -> php ?
      -> SQL ?
      0
  2. phpFail
     
    Bonjour,

    1)
    $np = $_POST['np'];
    $login = $_POST['login'];
    $passwd = $_POST['passwd'];
    $grade = $_POST['grade'];

    Ce code tu peux le mettre après ton if(...) mais ça répond pas au problème.

    2)
    Est tu sur que dans le formulaire le <form method="POST" action=" c'est bien le bon chemin ici ? " >

    3)utilise les balise <?php et non <?
    0
  3. dmganges Messages postés 152 Statut Membre 19
     
    Bjr,
    Je fais çà sur base distante chez Free :

    //// On récupère l'adresse IP du visiteur ////
    // $ip = $_SERVER['REMOTE_ADDR'];

    //// on ajoute une ligne////

    // echo "Adresse : ". "$adress". " Date : ". "$date". " Pgm : ". "$pgm". "<br>";

    $insert = 'INSERT INTO compteur (ip,date,pgm,referer) VALUES("'.$adress.'", "'.$date.'", "'.$pgm.'", "'.$referer.'")';

    if ($referer != ""){
    $query = mysql_query($insert);
    }
    0