我有一个脚本,从一个mysql结果产生一个表,我的目标是使列显示完全动态基于一个变量,其中包含我想显示的列的名称。我已经制作表格标题这种方式使用此代码:如果列名称匹配变量只打印行列
$search_field_names=explode(',', $search_field_names)
for($i=0, $count=count($search_field_names);$i<$count;$i++) {
echo ('<th>'.$search_field_names[$i].'</th>');
}
其中$ search_field_names是一个逗号separatated值的字符串(例如像fristname,姓氏,USER_ID等)。
打一个比方,假设上面的字符串包含我要显示这样的列名7:
$search_field_names=('firstname,lastname,dob,company,position,user_id,date_added')
第一代码片段将随后产生的表与7名标题。
然后出现棘手的部分:存储所有记录的数据库表共有22列。通过完成与第一个片段打印记录完全相同的内容,结果将会打印该表格的前7列,这不一定是我想要的。
这里是我得到的记录(这abviously自带的脚本上面的片断后):
$query=mysqli_query($mysqli, "SELECT * FROM table WHERE column_name1='$search_query' AND column_name2='$search_query' etc...);
while($row=mysqli_fetch_assoc($query)) {
echo('<tr>');
for($i=0, $count=count($search_field_names);$i<$count;$i++) {
echo ('<td>'.$row[$i].'</td>');
}
echo('</tr>');
所以,我想实现的是只取在数据库中,这correspons列到变量$ search_field_names中设置的名称。
为什么不;吨你改变你的选择查询并只获取$ Search_field_names变量中可用的列? – Haider 2013-04-24 11:49:20
因为我的网页的每个用户都有数据存储在数据库的不同列中,所以查询会搜索所有列。但是,正如你提到的那样,是否有可能在搜索查询中为()循环做类似的操作,所以它只搜索存储在变量中的列?如果这是可能的这可能会解决我的问题。 – Vegard 2013-04-24 11:58:16