我有一個腳本,從一個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