在我正在创建的项目中,我有一个mysql列,它是来自数据库的不同数据片段的数组。这些数据包含我想要显示的信息。为了在我使用的数组中分离这些项目,
$get_query = mysql_query('Select array FROM data');
while($dataRow = mysql_fetch_assoc($getfrnd_query)) {
$array = $dataRow['array'];
if($array != "") {
$data_from_array_column = explode("," $array);
$getdata = mysql_query("SELECT * FROM info WHERE item = $data_from_array_column");
//Then I used a mysql_fetch_assoc to get data based on the item.
}
}
当我运行此代码时,我收到一个错误"数组转换为$ getdata"行的字符串转换。 有没有办法让这个工作?
谢谢。
答案 0 :(得分:0)
问题是explode
返回一个数组,其中包含您用作分隔符(在您的情况下为,
)的字符之间的字符串,而不是字符串。
PHP很生气,因为它不知道如何自动将数组转换为字符串。所以,你需要自己转换它。选项包括:
您想要选择item
等于数组中{em> nth 元素的行$data_from_array_column
。如果是这种情况,您需要在爆炸后插入以下代码行:
$data_from_array_column = $data_from_array_column[0];
如果要选择匹配 $data_from_array_column
数组中任何元素的位置,它会变得更复杂。你需要在爆炸后添加这一行:
$data_from_array_column = implode("' OR item='",$data_from_array_column);
并将下一行的查询更改为:
$getdata = mysql_query("SELECT * FROM info WHERE item='$data_from_array_column'");
这将创建一个看起来像这样的MySQL查询:
SELECT * FROM info WHERE item='foo' OR item='bar' OR item='bla'