2012-12-17 3 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

Может быть, ваше заявление SQL delte в настоящее время повреждено переменным $ драйвера. Попробуйте устранить проблемные символы, которые записывают следующий запрос перед запросом на удаление: '$ 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

от первого кода с выбранного выбора –

Смежные вопросы