Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过函数传递数组_Php_Mysql_Html_Arrays - Fatal编程技术网

Php 通过函数传递数组

Php 通过函数传递数组,php,mysql,html,arrays,Php,Mysql,Html,Arrays,我的网站以在线分类广告为特色,由PHP和MySQL编程。下面的代码允许管理员使用复选框工具删除多个记录 <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" > <table> <td><? echo $rows['CountryName']; ?></td> <td><input name="delete

我的网站以在线分类广告为特色,由PHP和MySQL编程。下面的代码允许管理员使用复选框工具删除多个记录

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" >   
  <table>
    <td><? echo $rows['CountryName']; ?></td>
    <td><input name="delete_items[]" type="checkbox" value="<?php echo $rows['id']; ?>" /></td>
  </table>
  <input type="submit" name="deleteSelected" value="Submit" >
</form>

<?php
if(isset($_POST['deleteSelected'])) {
$delete_items = join(', ', $_POST["delete_items"]);  
$query = "DELETE FROM $table_name WHERE id IN ($deleted_items)";    
$result = mysql_query($query);    
header("Location: admin.php"); }
?>


看起来您正在将数据库中的所有记录显示到表单中的单个输入中

正如您尝试的那样,代码可能会与
内爆()
配合使用,但是您需要在表单的显示中使用一个循环来正确地使用选项生成表单

大概是这样的:

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" >   
    <table>
    <?php
    while($row=$databaseResult) //however you are getting the data out of the database.
    {
        echo "<tr><td>".$rows['CountryName']."</td><td><input name='delete_items[]' type='checkbox' value=".$rows['id']."/></td></tr>";
    }
    ?>
    </table>
    <input type="submit" name="deleteSelected" value="Submit" >
</form>

谢谢大家的帮助,我通过添加一行代码找到了一个简单的解决方案,如下所示:

<?php 
if(isset($_POST['deleteSelected'])) { 
  if(isset($_POST["delete_items"][0])) {
    $delete_items = join(', ', $_POST["delete_items"]);   
    $query = "DELETE FROM $table_name WHERE id IN ($delete_items)";     
    $result = mysql_query($query);     
    header("Location: admin.php"); 
  }
 } 
?> 


希望它能帮助其他人…

可能您的$\u POST[“delete\u items”]没有通过,因此join函数无法正确获取其第二个参数。否则,请尝试使用双引号代替“,”@FaddishWorm。我还认为,$\u POST[“delete\u items”]没有通过,并且join函数无法正确获取其第二个参数,但如何解决它呢?谢谢。请向我们展示:
var_dump($_POST['deleteSelected'])的输出请停止使用古老的mysql_*函数编写新代码。它们不再得到维护,社区已开始恢复。相反,您应该学习准备好的语句,并使用或。如果你想学习。