2012-05-05 3 views
0

Je veux mettre à jour mon produit quand il y a une connexion d'utilisateur. Voici mon code dans edit.phpComment mettre à jour la base de données en php?

   <?php 
       $id= (int)$_GET['id']; 

       $query = "SELECT * FROM game WHERE gameId=".$id.""; 
       $rs = mysql_query($query); 
       while($data = mysql_fetch_array($rs)) 
       { 
      ?> 
      <form action="doUpdate.php" method="post"> 
       <?php echo "<image src=\"images/".$id.".png\" alt=\"gameImage\" </image>"?> 

       <div class="cleaner"></div> 

       <div class="myLabel">Name</div><div>: <input type="text" value="<?php echo $data['gameName'];?>" name="gameName"/></div> 
       <div class="myLabel">Developer</div><div>: <input type="text" value="<?php echo $data['gameDeveloper'];?>" name="gameDeveloper"/></div> 
       <div class="myLabel">Price</div><div>: <input type="text" value="<?php echo $data['gamePrice'];?>" name="gamePrice"/></div> 

       <br/> 

       <div id="txtError" style="color:#D70005"> 
        <?php 
         if(isset($err)) 
         { 
          if($err==1) echo"All Fields must be filled"; 
          else if($err==2) echo"Price must be numeric"; 
          else if($err==3) echo"Price must be between 1-10"; 
         } 
        ?> 
       </div> 
       <input type="submit" value="Submit"/> 
       <a href="product.php"><input type="button" value="Cancel"/></span></a> 
       <?php 
       } 
       ?> 
      </form> 

Ceci est mon code dans doUpdate.php

<?php 
$nama = $_POST['gameName']; 
$dev = $_POST['gameDeveloper']; 
$harga =$_POST['gamePrice']; 
$id= (int)$_REQUEST['id']; 

if($nama == "" || $dev == "" || $harga == "") 
{ 
    header("location:edit.php?err=1"); 
} 
else if(!is_numeric($harga)) 
{ 
    header("location:edit.php?err=2"); 
} 
else if($harga < 1 || $harga >10) 
{ 
    header("location:edit.php?err=3"); 
} 
else 
{ 
    $query = "UPDATE game SET gameName='".$nama."', gameDeveloper='".$dev."', gamePrice=".$harga." where gameId=".$id.""; 
    mysql_query($query); 
    header("location:product.php"); 
} 

?>

Pourquoi je ne peux pas changer le nom, développeur, ou même prix je l'ai déjà donner l'action dans la forme? Et pourquoi, si je supprime le nom, le développeur et le prix pour savoir si la validation fonctionne ou pas, il est dit que Undefined index dans edit.php $ id = (int) $ _ GET ['id']; ?

+3

Avant d'aller plus loin avec ce code. vous avez besoin de lire à propos de [attaques par injection SQL] (http://bobby-tables.com) et de la gestion [erreurs SQL] (http://php.net/mysql_error) –

+0

Lorsque vous dites que vous ne pouvez pas changer les détails , Que voulez-vous dire? Qu'est-ce qui se passe quand vous essayez? Recevez-vous un message d'erreur ou le formulaire est-il envoyé mais la base de données n'est pas mise à jour? – andrewsi

+0

Il n'y a pas de message d'erreur, je pourrais soumettre mais la base de données n'est pas mise à jour. – greenthunder

Répondre

0

Vous essayez d'obtenir $_REQUEST['id'] dans doUpdate.php mais il n'y a pas un tel champ dans le formulaire.
Vous devez l'ajouter en tant que champ masqué.

Vous devez également formater vos chaînes.
Chaque chaîne que vous allez mettre en requête vous devez sortir des caractères spéciaux.

Questions connexes