我是那些相对的PHP/MySQL新手之一,其背景一直支持,而不是发展。然而,我已经设法把很多事情都放在一起,因为像这样的很棒的资源网站,所以我要提前感谢所有过去,现在和未来。然而,我要么不能构建一个合适的谷歌查询来查找我需要的信息,要么我错过了我认为的一个简单技巧。PHP MySql - 通过复选框自定义列显示选择
总之,我有一个具有大约15列(字段)的表的MySQL数据库。我有一个php前端,我可以查询数据库,或者返回所有行,或者只是包含一般搜索项的所有行,跨所有字段。一切顺利,表现良好,效果很好。但是,我想让用户选择他们想要在结果中返回的那些列(字段)。因此,我有一个搜索页面,列名显示了相应的复选框和值(列名)。代码如下:
Search for* :FirstName | LastName
| Age
| Instrument
| Grade
| LandlineNo
| MobileNo
| Email
| AddressLine1
| AddressLine2
| Town
| County
| Postcode
| Price
| Paid
| LastUpdated
|
---|
所有复选框被指定为field []作为名称,因此输出到result.php中的数组。进一步读取一点点后我可以得到阵列用逗号分隔显示(回波)的选定的列,每:
for ($i=0; $i
$columns = addslashes($_POST['field'][$i]);
echo $columns;
}
// output example
LastName,Age,Instrument,Email
然而,我现在在不知如何获得只对选定的在结果视图中检索列。任何人都可以帮助我,朝着正确的方向前进。我已经得到了这个,但是这不起作用,因为所有的列都被返回。
$result = mysql_query("select * from TABLE where FirstName like '%$searchterm%' or LastName like '%$searchterm%' or Age like '%$searchterm%' or Instrument like '%$searchterm%' or Grade like '%$searchterm%' or LandlineNo like '%$searchterm%' or MobileNo like '%$searchterm%' or Email like '%$searchterm%' or AddressLine1 like '%$searchterm%' or AddressLine2 like '%$searchterm%' or Town like '%$searchterm%' or County like '%$searchterm%' or Postcode like '%$searchterm%' or Price like '%$searchterm%' or Paid like '%$searchterm%'");
echo '
while ($row = mysql_fetch_assoc($result)) {
if (empty($columns)) {
$columns = array_keys($row);
echo '
'.implode('', $columns).'';}
$resultset[] = $row;
echo '
'.implode('', $row).'';}
echo '
';最终碰触也将检索并根据结果集填充到表的列标题。预先感谢任何指导,建议和改进。
吉姆
2012-07-24
DevSki