2015-10-13 59 views
-2

所以我有一个留言验证码:删除MYSQL一行PHP

<table width="400" border="0" align="center" cellpadding="3" cellspacing="0"> 
<tr> 
<td><strong>View Guestbook | <a href="gbook.php">Sign Guestbook</a> </strong></td> 
</tr> 
</table> 
<br> 
<?php 
if(isset($_POST['login'])){ 

    if(empty($_POST['username'])) 
    { 
     $this->HandleError("UserName is empty!"); 
     return false; 
    } 
    if(empty($_POST['password'])) 
    { 
     $this->HandleError("Password is empty!"); 
     return false; 
    } 
    if ($_POST['username'] == "admin" && $_POST['password'] == "pietje"){ 
     echo 'Welkom'; 
     $loggedIn = true; 
     echo '<img width="500" height="375" src="http://vignette4.wikia.nocookie.net/southpark/images/9/9e/Party.gif/revision/latest?cb=20140712092024">'; 

    } else { 
     echo 'Incorrect user or pass'; 
     echo '<img width="500" height="375" src="https://media.giphy.com/media/B1TMcmoBAaSZi/giphy.gif">'; 
    } 
    $username = trim($_POST['username']); 
    $password = trim($_POST['password']); 
} 

    ?> 

<form id='login' method='post' accept-charset='UTF-8'> 
<fieldset > 
<legend>Login</legend> 
<input type='hidden' name='submitted' id='submitted' value='1'/> 

<label for='username' >UserName*:</label> 
<input type='text' name='username' id='username' maxlength="50" /> 

<label for='password' >Password*:</label> 
<input type='password' name='password' id='password' maxlength="50" /> 

<input type='submit' name='login' value='login' /> 

</fieldset> 
</form> 

<?php 

$host="mysql17.000webhost.com"; // Host name 
$username="a1126203_stan"; // Mysql username 
$password=""; // Mysql password 
$db_name="a1126203_gb"; // Database name 
$tbl_name="guestbook"; // Table name 


// Connect to server and select database. 
mysql_connect("$host", "$username", "$password")or die("cannot connect server "); 
mysql_select_db("$db_name")or die("cannot select DB"); 

$sql="SELECT * FROM $tbl_name"; 
$result=mysql_query($sql); 

while($rows=mysql_fetch_array($result)){ 

?> 

<table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC"> 
<tr> 
<td><table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF"> 
<tr> 
<td>ID</td> 
<td>:</td> 
<td><? echo $rows['id']; ?></td> 
</tr> 
<tr> 
<td width="117">Name</td> 
<td width="14">:</td> 
<td width="357"><? echo $rows['name']; ?></td> 
</tr> 
<tr> 
<td>Email</td> 
<td>:</td> 
<td><? echo $rows['email']; ?></td> 
</tr> 
<tr> 
<td valign="top">Comment</td> 
<td valign="top">:</td> 
<td><? echo $rows['comment']; ?></td> 
</tr> 
<tr> 
<td valign="top">Date/Time </td> 
<td valign="top">:</td> 
<td><? echo $rows['datetime']; ?></td> 
</tr> 
</table></td> 
</tr> 
<?php 
$id = $rows['id']; 
echo $id; 
if($loggedIn){ 
echo '<tr> 
<td width="100"> </td> 
<td> 
<input name="delete'.$id.'" type="submit" id="delete" value="Delete"> 
</td> 
</tr>'; 
} 
if(isset($_POST['delete'.$id])) 
     { 

$conn = mysql_connect($host, $username, $password); 

      $sql="DELETE FROM guestbook WHERE id='".$id."'"; 
      mysql_select_db('a1126203_gb'); 
      $retval = mysql_query($sql, $conn); 

      if(! $retval) 
      { 
       die('Could not delete data: ' . mysql_error()); 
      } 

      echo "Deleted data successfully\n"; 

      mysql_close($conn); 
     }     
?> 
</table> 
<?php 
if($loggedIn){ 

} 
} 
mysql_close(); //close database 
?> 

Iknow它很难看,但并没有真正事情ATM,我想提出一个删除按钮,每一个新的行,但我想删除与删除按钮具有相同ID的行。但对于一些(可能是显而易见的)原因,它不起作用。

+5

** **停止使用废弃的'myql_ *'API。相反,使用'mysqli_ *'或PDO和准备好的语句。调用sql命令后检查错误。 – Jens

+0

我不明白这与我的问题有什么关系 –

+1

@StanVanDerBend尽管这与您的问题无关,但使用折旧功能并不是一个好习惯,因为您未来可能无法获得任何帮助,PDO将有所帮助你要防止SQL注入和其他漏洞 –

回答

1

删除按钮不在表单内,因此点击时不会提交。

放置一个<form>标签内输入字段,他们会工作,

<form method="post" action="http://some/url"> 
    <input name="delete'.$id.'" type="submit" id="delete" value="Delete"> 
    ... 
</form> 
0

试试这个 创建单独的形式像

<form method="post" id='form' action="http://some/url"> 
    <input type="hidden" id="deleteId"> 
</form> 

代码

<input name="delete'.$id.'" type="submit" id="delete" value="Delete"> 

更换

<input type="button" onclick=delete(.$id.) value="Delete"> 

<script> 
function delete(id){ 
    $('#deleteId').val(id); 
    $('#form').submit(); 
} 
</script>