我的删除查询不会从mysql中删除任何内容

时间:2016-01-17 02:15:01

标签: php mysql

我正在构建一个网站..在这个页面中,我想在mysql中显示所有数据并选择一行并从mysql中删除所有数据,但是当我进行测试时(row_affect)它没有提供任何内容改变..它显示我的数据库中的所有信息,一切正常,但当我想删除时,它不会删除。 这是代码..

<?php

//Connect to DB
//include_once("Project/CIEconn.php");
$mysqlCON= mysqli_connect("localhost", "root", "","CIE") or die(mysqli_connect_error()); 
mysqli_select_db($mysqlCON,'CIE') or die ("no database");



$IDID = isset($_POST['Id']); // 1 2 

if( isset($_POST['delete']) ){
        if( empty($IDID) || $IDID == 0 ){
            echo"<h4>  please choose something to delete   </h4>";
        }else{


            echo $IDID ; 
            echo "<br>" ;

            $impid = implode(" , " ,  $_POST['Id']);



$sqlDelete = ("DELETE  FROM Shopping WHERE Id IN ('".$impid."') ") ;
$DeleteQuery = mysqli_query($mysqlCON,$sqlDelete) or die ("Error : ".mysqli_error($mysqlCON));

// TEST ONLY ////////----------------------------------------////////////
if (mysqli_affected_rows($mysqlCON) > 0) {
    echo "You have successfully updated your data.<br><br>";
}
else {
    echo "The data you submitted matched the current data so nothing was changed.<br><br>";
}
if (!$DeleteQuery) {
    die("Invalid query:" );
}


//var_dump($DeleteQuery );
////////----------------------------------------////////////

                     if(isset($DeleteQuery )){
                        echo"<h3> Done Deleting .... !!</h3>";

                    }else {echo "Error While Deleting...";}
        }


 }



$sqlCommand = "SELECT * FROM Shopping  ";
$result = mysqli_query($mysqlCON,$sqlCommand) or die(mysqli_error($mysqlCON)); 


echo '
<form action= "Shop_Sup.php"  method = "post">
<table width ="100%" cellpadding ="4" border="1" >

<tr>
<th>Check </th>
<th>ID</th>
<th>Jobs Name</th>
<th>Description</th>
<th> No Students needed</th>
<th>Due Date</th>
</tr>';

while ($row = mysqli_fetch_array($result) ){

// name = 'Id[]'
    echo "<tr>

<td> <input type='checkbox'  name='Id[]'  vlaue='". $row['Id'] ."' /> </td>


 <td>". $row['Id'] ." </td>
 <td> ". $row['JobName'] ." </td>
 <td> ". $row['Description'] ." </td>
 <td> ". $row['NoStudent'] . "</td>
<td>". $row['Date'] ." </td>
</tr>";


}

echo '
</table>
<br/>

<div align="center">
<input type="submit" name="delete" value="delete" />

<input type="reset" value="Clear Marks" />
</div>

</form>

';

?>

<html>
<head><title> Shopping.. </title></head>
<br>
<body>
</body>
</html>

1 个答案:

答案 0 :(得分:3)

问题是由于DELETE查询中的单引号不正确,

$sqlDelete = ("DELETE  FROM Shopping WHERE Id IN ('".$impid."') ") ;
                                                  ^          ^

因此,您的DELETE查询应该是这样的:

$sqlDelete = "DELETE FROM Shopping WHERE Id IN (" . $impid . ")";

<强>编辑:

如果$_POST['Id']包含字符串数组,请执行以下操作:

// your code

$impid = implode("' , '" ,  $_POST['Id']);
$sqlDelete = "DELETE FROM Shopping WHERE Id IN ('" . $impid . "')";

// now execute $sqlDelete query     

您的HTML代码也存在问题。请看这里的陈述,

<td> <input type='checkbox'  name='Id[]'  vlaue='". $row['Id'] ."' /> </td>
                                           ^ here

应该是,

<td> <input type='checkbox' name='Id[]' value='". $row['Id'] ."' /> </td>