我有以下代码(在phpMyAdmin中测试的SQL查询并且似乎有效)从所选列中获取数据:
$ids = isset($_REQUEST['id']) ? $_REQUEST['id'] : array();
if (is_array($ids)) $ids = implode(',', $ids);
if (!empty($ids)) {
$sql = "SELECT upload, upload2, upload3, upload4, upload5 FROM wp_site_table WHERE cid IN($ids) ORDER BY FIELD(cid, $ids)";
$results = $wpdb->get_results($sql) or die(mysql_error());
foreach( $results as $result ) { ... } }
我遇到的问题是我想输出所选cid中的所有字段。
此代码仅显示第一个cid结果。
echo $result->upload;
我们假设$ ids包含cid 1,4和7我想从所有这些特定行输出upload,upload2,upload4,upload5。怎么样?以某种方式使用数组?
亲切的问候 约翰答案 0 :(得分:0)
如果您想回显所有字段,请执行以下操作:
echo $result->upload . '<br>' . $result->upload2 . '<br>' . $result->upload3 .
'<br>' . $result->upload4 . '<br>' . $result->upload5;
您应该考虑重新设计数据库,这样每行中都没有重复的字段。最好有另一个表,其中每个upload
都在它自己的行中,因此这些值的数量没有硬编码限制。然后,您可以使用JOIN
查询获取所有uploads
,并且它们将位于数组中。
答案 1 :(得分:0)
使用'$ wpdb-&gt; get_results'输出默认为OBJECT类型。尝试使用预定义的常量:ARRAY_A,它将输出作为关联数组。
$sql = "SELECT upload, upload2, upload3, upload4, upload5 FROM wp_site_table WHERE cid IN($ids) ORDER BY FIELD(cid, $ids)";
$results = $wpdb->get_results($sql, ARRAY_A) or die(mysql_error());
要访问,只需使用:
foreach( $results as $result ){
echo $result['upload'];
}