数组来自此表单(选择框)。
<?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来自表单/数组(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测试了它。它确实显示了数值。
我该如何解决这个问题?
答案 0 :(得分:2)
您不能将数组包含在字符串中。所以,
$sql = "select * from t_dvd_copy where dvd_copy_id = '$ide' ";
是不可能的,会给你一个错误。
相反,您可能需要检查$ide
数组以查看其中的内容,并使用正确的元素。也许使用implode()并将条件更改为IN
而不是=
:
$sql = "select * from t_dvd_copy where dvd_copy_id IN (" . implode(',', $ide) . ") ";
答案 1 :(得分:0)
错误地写入了Select查询。如果复选框输入有一个id数组,那么select查询中的条件运算符将是&#39; IN&#39;而不是&#39; =&#39;。