Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.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 sql_Php_Html_Sql_Arrays - Fatal编程技术网

数组到字符串转换错误php sql

数组到字符串转换错误php sql,php,html,sql,arrays,Php,Html,Sql,Arrays,从该表单获取的数组选择框 <?php session_start();?> <?php require("Connections/Project.php"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www

从该表单获取的数组选择框

<?php session_start();?>
<?php require("Connections/Project.php"); ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<?php
        $sql_s="SELECT * FROM t_dvd_copy";
        $query_s=mysql_query($sql_s);
 ?>
<body>
  <?php
        $sql="SELECT *, dvd_title FROM t_dvd_copy INNER JOIN t_dvd ORDER BY dvd_title ASC";
        $query=mysql_query($sql);

        while($row=mysql_fetch_array($query)) {

?>
<form action="calculatepage.php" method="post">
<table width="200" border="1">
  <tr>
    <td><?php echo $row['dvd_copy_id']?></td>
    <td><?php echo $row['dvd_title']?></td>
    <td><?php echo $row['price']?></td>
    <td><input type="checkbox" value="<?php echo $row['dvd_copy_id']?>" name="checkbox[]"></td>
  </tr>
</table>

<p>

  <?php
        }
    ?>
      <input type="submit" name="button" id="button" value="Submit" />
   </form>
</p>
</body>
</html>
我想使用从表单获得的数组在sql表中显示它,其中ID来自表单/array calculatepage.php

<?php include("Connections/Project.php");?>
<?php session_start();?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Calculate</title>
</head>
<body>
<table>
<tr>
<?php 
$ide=$_POST['checkbox'];

$sql="select * from t_dvd_copy where dvd_copy_id='$ide'";

$result = mysql_query($sql);
while($row = mysql_fetch_array($result)) {
echo $row['dvd_copy_id'];
}
?>

</body>
</html>
我收到错误消息通知:第17行C:\xampp\htdocs\pro\calculatepage.php中的数组到字符串转换

我首先用foreach和print\r测试了它。它确实显示了数值


如何修复此问题?

不能将数组包含到字符串中。所以

$sql = "select * from t_dvd_copy where dvd_copy_id = '$ide' ";
这是不可能的,而且会给你一个错误

相反,您可能需要检查$ide数组以查看其中的内容,并使用正确的元素。可能使用并将条件更改为IN而不是=:


Select查询编写错误。如果复选框输入具有ID数组,则Select查询中的条件运算符将为“in”而不是“=”。

$ide是一个数组,您不能简单地将其插入字符串中。从表单传递的复选框变量是一个数组;你不能随意地将其插入SQL语句中。你能给我一些建议吗?
$sql = "select * from t_dvd_copy where dvd_copy_id IN (" . implode(',', $ide) . ") ";