我收到了以下警告:
警告:implode()[function.implode]:传递的参数无效。
导致此问题的原因以及如何解决?
$title = $_POST[photo_name_id];
if($title)
{
foreach($title as $titled)
{
$judul[] = $titled;
}
}
$titleds = "('".implode("'), ('",$judul)."')";
这是我的表格:
<tr>
<td>
<?
$pm1= mysql_query("SELECT photo_name FROM photo_name WHERE photo_name_id = 1");
$dpm1 = mysql_fetch_array ($pm1);echo"$dpm1[0]"
?>
<input type='hidden' name='photo_name_id[]' value='<?echo"$dpm1[0]"?>'> :
</td>
</tr>
<tr>
<td>
<?
$pm1= mysql_query("SELECT photo_name FROM photo_name WHERE photo_name_id = 2");
$dpm1 = mysql_fetch_array ($pm1);echo"$dpm1[0]"
?>
<input type='hidden' name='photo_name_id[]' value='<?echo"$dpm1[0]"?>'> :
</td>
</tr>
答案 0 :(得分:4)
尝试添加:
$judul = array();
在将$judul
初始化为array
之前。
$judul = array();
$title = $_POST[photo_name_id];
if($title)
{
foreach($title as $titled)
{
$judul[] = $titled;
}
}
$titleds = "('".implode("'), ('",$judul)."')";
答案 1 :(得分:1)
如果$title
评估为false,会发生什么?然后你的if语句将不会执行,并且不会创建数组。 <{1}}会发出警告,因为传入了未设置的变量。它需要一个数组。
您应该将implode()
初始化为空数组,或将内部数据放入if。
另外,引用您的数组键。这是不好的做法,因为最初PHP假设它们是常量。
$judul
或者这个(更可取的是,因为$title = $_POST['photo_name_id'];
if($title) {
foreach($title as $titled) {
$judul[] = $titled;
}
$titleds = "('" . implode("'), ('", $judul) . "')";
}
将始终设置):
$titleds
然而,这一切都提示了这个问题。为什么要将$title = $_POST['photo_name_id'];
$judul = array();
if($title) {
foreach($title as $titled) {
$judul[] = $titled;
}
}
$titleds = "('" . implode("'), ('", $judul) . "')";
复制到新数组中。为什么不这样做:
$title
答案 2 :(得分:0)
确保$judul
是一个数组。 PHP implode需要参数(字符串,数组)。请参阅this。