0

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 に設定された名前に対応するデータベース内の列のみをフェッチすることです。

4

1 に答える 1