2010-09-01 8 views
3
$html=""; 
$sql="SELECT * FROM tiger;"; 
$rs=mysql_query($sql); 
while($row=mysql_fetch_array($rs)){ 

    $html.= 
      '<tr><td align="left"><img src="'.$row['image'].'" width="200" height="150" /></td> 
       <td align="center" style="font:bold">'.$row['name'].' </td> 
      <td align="center"><input type="submit" name="Submit" value="Delete" /> 
      <input name="id" type="hidden" value="'.$row['id'].'" /> </td> 

      </tr>' 
      ; 
    } 
if($_REQUEST['Submit']){ 

$sql1="delete image from tiger where id='".$_REQUEST['id']."'"; 
$query=mysql_query($sql1); 
} 

Maintenant, ce $ html est renvoyé en écho. donc dans la sortie im obtenant la première image, puis le nom de l'image, puis un bouton. maintenant ce que je veux est wen je clique sur le bouton de suppression de la ligne respective est supprimée de la base de données. ce qui ne se passe pas dans le code ci-dessus car il est incapable d'aller chercher l'identifiant respectif. si pleaser aider comment puis-je faire cela?Vous souhaitez supprimer une ligne particulière. comment chercher l'identifiant?

Répondre

2

Avez-vous ajouté un élément de formulaire à cette table? J'ai remplacé $_REQUEST par $_POST, essayez d'éviter d'utiliser $_GET. Un utilisateur malveillant connaissant votre URL de suppression pourrait vous inciter à cliquer sur un lien (par exemple tinyurl), qui ouvre un autre ensemble de liens: la page supprimant tous vos enregistrements. Essayez ceci:

$html=""; 
$sql="SELECT * FROM tiger;"; 
$rs=mysql_query($sql); 
if(!$rs){ 
    echo 'Query failed...'; 
    // and log the error, mysql_error() 
} 
while($row=mysql_fetch_array($rs)){ 

    $html .= 
      '<tr><td align="left"><img src="'.urlencode($row['image']).'" width="200" height="150" /></td> 
       <td align="center" style="font:bold">'.htmlentities($row['name']).' </td> 
      <td align="center"><form action="" method="post"><input type="submit" name="Submit" value="Delete" /> 
      <input name="id" type="hidden" value="'.$row['id'].'" /></form> </td> 

      </tr>' 
      ; 
    } 
if($_POST['Submit'] && isset($_POST['id']) && ctype_digit($_POST['id'])){ 

$sql1="delete image from tiger where id='".$_POST['id']."'"; 
$query=mysql_query($sql1); 
if(!$query){ 
    echo 'Error....'; 
    //and log mysql_error() somewhere 
} 
else{ 
    echo 'Deletion succesful'; 
} 
+0

Merci beaucoup! ça a marché.... – champ

0

Dans votre HTML, vous avez autant de champs cachés que de lignes dans votre base de données, tous avec le nom "id". Pour une solution rapide, utilisez un lien normal et utilisez le paramètre GET, par exemple <a href="' . $_SERVER['PHP_SELF'] . '?id=' . $row['id'] . '">delete</a>.

Si vous voulez vraiment utiliser les boutons, vous devrez ajouter un tag form autour de chaque de vos boutons.

Questions connexes