2013-07-18 105 views
0

我想从mysql数据库中删除一行。我想要删除的行是组合框中的'selected item'。从数据库中删除选定的行

我迄今为止代码:

$sql = "SELECT data_id FROM projects"; 
    $result = mysql_query($sql); 

    echo "<select name='data_id '>"; 
    echo "<option selected>Please select...</option>"; 
    while ($row = mysql_fetch_array($result)) 
    { 
     echo "<option value='" . $row['data_id '] . "'>" . $row['data_id'] . "</option>"; 
    } 
    echo "</select>"; 

    ?> 
    <tr><td><input type="submit" name="delete" value="Delete" id="delete"></td></tr></tr></table> 
    <?php 
    //delete selected item from projects table... 
    ?> 

组合框是从我的项目表中的所有项目。当我选择一个项目,然后点击'删除'我想从表格中删除该项目。

任何帮助将不胜感激。

enter image description here

+1

AJAX将帮助你。 。 。 – Fallen

+0

你要么需要AJAX调用另一个PHP页面onSubmit或者你需要将它包装成 – immulatin

回答

0

你的逻辑应该是:

在HTML前的脚本的顶部,从形式 检查POST值,如果存在的话,使用变量来删除相应的数据库值 用头(”位置')回到同一页面重新加载页面(所以值从下面的表格)去除

,你有你的选择框,使之成为形式,动作=相同的页面,方法=后

明天

,我将发布示例代码,如果您还没有制定出来,届时

1

我没有得到为什么他们建议你使用Ajax,同时可以进行简单的形式

<form method="post" action=""> 
<tr><td> 
//SOME PHP where you obtain from the database the data_id (this you have done already) 
    <option value='" . $row['data_id '] . "'>" . $row['data_id'] . "</option> 
//  
<input type="submit" name="delete" value="Delete" id="delete"> 
</td></tr> 
</form> 

,并在同一HTML之前的顶部页面

<?php 
if(isset($_POST['delete']) { 
//and now mysql DELETE FROM .... WHERE id = $_POST['data_id'] 
//dont forget to escape and use mysli instead of mysql 
} 
?> 

Btw。不要使用mysql_ *它的弃用,+在mysql中跳过所有内容+当你不需要数组时,不使用fetch_array,fetch_assoc很好;)希望有帮助。

0

第一关你使用的类型提交,并通过你需要一个形式,当你使用选项,您需要设置的值或

,如果你想选择所有删除数据库中的特定行,让说,id为1,因此它是第一行做这样的

if(isset($_GET['to_be_deleted'])) 
{ 
$id=mysql_real_escape_string($_GET['to_be_deleted']); 
mysql_query("DELETE FROM name_table where id='$id'"); 
} 

如果我的回答是不好的,请叫我更多的细节

+0

首先,不要使用mysql_ * –