2012-12-17 58 views
0

我想选择PHP代码中的数据,并从mysql数据库中选择数据,然后选定的数据将被删除!这是我的一般想法。从选定菜单中删除数据库中的数据

我写的代码,第一个代码是从数据库打印数据,以允许用户选择数据,这是第一次代码:

<form method="POST" action="deleteacc.php" name='monitor' id='monitor'> 
<select name="drivers"><option>Please Select the sensor id that you want to delete :</option> 
<?php 

$uid=$_SESSION['uid']; 

    $dbName = "senior"; //Database name 
     $db = mysql_connect ("localhost","root","hahaha1") or die("Unable To Connect "); //Connect to database 
     $test= mysql_select_db ($dbName,$db) or die("Unable to select database"); //Test Connection 

     $result=mysql_query("SELECT * FROM accelerometer "); 


     while ($row=mysql_fetch_array($result)) 
     { 
      $sid = $row['sid']; 
      $x=$row['x']; 
      $y=$row['y']; 
      $z=$row['z']; 
      $date=$row['date']; 
      $time=$row['time']; 
      echo "<option name=$sid' value='$sid'> Device ID: $sid</option>"; 
     }   

     mysql_close($db); 
     ?> 
</select></center> 
<br> 
<center> <input type="submit" value= " Monitor " name="submit" ><br /><br /> </center> 
</form> 

我的第二个代码删除所选数据:

<?php 
$dbh=mysql_connect("localhost", "root", "hahaha1") or die (mysql_error()); 
mysql_select_db ("senior"); 
extract($_POST); 
$mySql="DELETE FROM accelerometer WHERE sid=$drivers"; 
mysql_query($mySql) or die (mysql_error()); 
echo "<h2> User info was deleted successfully</h2>"; 
echo "<h3>To go back to adminstration control click <a href='member.php'>Here!</a> or to delete another accelerometer value click <a href='deleteacc2.php'>Here!</a></h3>"; 
mysql_close($dbh); 
?> 

我的问题是,当我从菜单中选择数据并按下监视器显示,我这个错误:

Unknown column 'bedoor' in 'where clause' 

关于如何解决我的问题的任何想法,请?

+0

也许你delte SQL语句是由$驱动变量损坏。尝试消除有问题的字符,在删除查询之前编写以下语句:'$ driver = addslashes($ driver);' – Muatik

+0

我试过你说的错误显示给我:致命错误:调用未定义的函数addlslahes()在C:\ AppServ \ www \ senior \ deleteacc.php在线61 –

+0

对不起,有一个错字。我刚刚纠正了它。看看这个:http://php.net/addslashes并根据ROY的答案更改你的代码。 – Muatik

回答

0

此:

echo "<option name=$sid' value='$sid'> Device ID: $sid</option>"; 

应该是:

echo "<option value=\"".$sid."\"> Device ID: ".$sid."</option>"; 

你真的不应该使用mysql电话分机,因为它已经贬值了。看看mysqli或PDO。

这里是如何设置您的帖子变量调用页面:

<?php 
$dbh=mysql_connect("localhost", "root", "hahaha1") or die (mysql_error()); 
mysql_select_db ("senior"); 
if(isset($_POST['drivers'])) 
    { 
     $drivers = $_POST['drivers']; 
    } 
$mySql="DELETE FROM accelerometer WHERE sid = '".$drivers."'"; 
mysql_query($mySql) or die (mysql_error()); 
echo "<h2> User info was deleted successfully</h2>"; 
echo "<h3>To go back to adminstration control click <a href='member.php'>Here!</a> or to delete another accelerometer value click <a href='deleteacc2.php'>Here!</a></h3>"; 
mysql_close($dbh); 
?> 
+0

我试过了,但我得到了以前的错误 –

+0

你在哪里得到变量$驱动从? –

+0

从第一个代码从选择的选择 –