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 はコンマで区切られた値の文字列です (例: fristname、lastname、user_id など)。
例を作るために、上記の文字列に、次のように表示したい7つの列の名前が含まれているとしましょう:
$search_field_names=('firstname,lastname,dob,company,position,user_id,date_added')
最初のコード スニペットは、これら 7 つの名前を含む表の見出しを生成します。
すべてのレコードが格納されるデータベース テーブルには、合計 22 の列があります。レコードを出力する最初のスニペットとまったく同じことを行うと、結果として、そのテーブルの最初の 7 列が出力されますが、これは必ずしも必要なものではありません。
レコードを取得する方法は次のとおりです (これは明らかに、スクリプトの上記のスニペットの後にあります)。
$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>');
したがって、私が達成したいのは、変数 $search_field_names に設定された名前に対応するデータベース内の列のみをフェッチすることです。