2010-07-25 8 views
0

Quelqu'un peut-il me dire pourquoi l'enregistrement n'est pas inséré? Ceci est ma seule page: -mysql php problème crud

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title></title> 
    </head> 
    <body> 


     <form action="Adduser.php" method="post"> 

     <center> 
     <table> 
      <tr> 
       <td> 
        Username : 
       </td> 
       <td> 
        <input type="text" id="username" /> 
       </td> 
      </tr> 

      <tr> 
       <td> 
        Password : 
       </td> 
       <td> 
        <input type="text" id="password"/> 
       </td> 
      </tr> 

      <tr> 
       <td> 
        Email Address : 
       </td> 
       <td> 
        <input type="text" id="emailaddress"/> 
       </td> 
      </tr> 

      <tr> 
       <td> 
        Address : 
       </td> 
       <td> 
        <input type="text" id="Address"/> 
       </td> 
      </tr> 
      <tr> 
       <td colspan="2"> 
        <input type="Submit" name="submit" value="Add"/> 
       </td> 
      </tr> 

     </table> 
     </center> 
     <?php 
        mysql_connect('localhost', 'root', ''); 
      mysql_select_db('user'); 
      $query = mysql_query("Select * from tbluser"); 
      echo "<center>"; 
      echo '<table style="border:solid 2px black;">'; 
      while(($row = mysql_fetch_array($query)) != NULL) { 
       echo '<tr>'; 
       echo '<td>' . $row['UserName'] . '</td>'; 
       echo '<td>' . $row['Password'] . '</td>'; 
       echo '<td>' . $row['EmailAddress'] . '</td>'; 
       echo '<td>' . $row['Address'] . '</td>'; 
       echo '</tr>'; 
      } 
      echo '</table>'; 
      echo "</center>"; 
     ?> 
      </form> 
    </body> 
</html> 

problème est ici (ce qui est Adduser.php): -

La condition if ne sera exécuté. Quelqu'un peut-il me dire pourquoi ça ne marche pas? Le tableau ne contient rien $_POST lors de l'impression via var_dump

+2

Pour commencer, vos entrées de texte doivent avoir 'name = "... "', pas 'id =" ..."' –

Répondre

3

Vous devez utiliser l'attribut name pour chaque champs d'entrée comme

<input type="text" id="username" name="username" /> 

Merci

+0

voudrez peut-être vérifier aussi si '($ _SERVER [ 'REQUEST_METHOD' ] == 'POST') {'au lieu de' if ($ _POST ['submit']) '. Vous pouvez oublier à un moment donné de définir un nom sur votre bouton de soumission, mais le REQUEST_METHOD sera toujours présent. –

1

Est-ce le code qui est à la page Adduser.php? S'il s'agit d'une page différente, lorsqu'un utilisateur clique sur le bouton Envoyer, la page Adduser.php reçoit la requête http.

Vous n'avez pas besoin d'utiliser l'attribut name sur les entrées. Ainsi, lorsque ce formulaire ci-dessus est soumis, il recevra une requête http contenant $ _POST ['submit'], $ _POST ['nom d'utilisateur'], $ _POST ['mot de passe']. C'est pourquoi en haut du formulaire, je vérifie d'abord si le bouton de soumission était joli en utilisant la fonction PHP :: isset().

IE.

<?php 
if(isset($_POST['submit'])){ 
//process post submission 
//perform mysql insert and notify user the result status 
}else{ 
//initialize form values 
$_POST['userName'] = ''; 
$_POST['password'] = ''; 
} 
?> 
<html> 
<body> 
<form action="<?=$_SERVER['PHP_SELF']?>"> 
<input type="text" name="username" value="<?=$_POST['userName']?>" /> 
<input type="text" name="password" value="<?=$_POST['password']?>" /> 
<input type="submit" name="submit" value="Add user"/> 
</form> 
</body> 
</html>