"field_definitions"テーブルを入力フィールドのソースとしてHTMLフォームを作成し、 "user_data"テーブルの以前に格納された結果に基づいて各フィールドのデフォルト値を設定するPHPスクリプトを作成しようとしています。 (現在ログインしているユーザーに基づいて...私は、認証システムを設定していると、セッション変数を使用して実行されている。)PHPを使用して2つの異なるテーブルのテーブルデータに基づいてHTMLフォームを生成するにはどうすればよいですか?
私のテーブルはとても似ています...
users TABLE
user_id user_email user_firstname user_lastname user_password
1 [email protected] John Doe password
field_definitions TABLE
field_id field_type field_length field_name field_desc field_section
1 text 40 color What is your favorite color? 1
user_data TABLE
response_id user_id field_id user_response
1 1 1 Blue
は、私は、コードのブロックを作成したこと私の "field_definitions"テーブルから行を返し、それらを配列に格納します。 foreachループを使用して配列の各行に基づいてフォームを生成することはできますが、デフォルト値の別のテーブルから2番目の情報セットを引き出す方法を見つけることはできません。
$dbc = mysqli_connect(sqlhost, sqluser, sqlsecret, sqldb);
$field_definitions_query = "SELECT * FROM field_definitions WHERE field_section = '1'";
$field_definitions_data = mysqli_query($dbc, $field_definitions_query);
$field_definitions = array();
while ($row = mysqli_fetch_array($field_definitions_data)) {
array_push($field_definitions, $row);
}
echo '<form enctype="multipart/form-data" method="post" action="' . $_SERVER['PHP_SELF'] . '">';
foreach ($field_definitions as $row) {
echo '<label for="' . $row[field_name] . '">' . $row[field_desc] . ':</label>';
echo '<input type="' . $row[field_type] . '" id="' . $row[field_name] . '" name="' . $row[field_name]. '" value="temp" /><br />';
}
echo '<input type="submit" value="Save" name="submit" /></form>';
他のテーブルデータの2番目の配列を作成してから、2つを一度にマージする必要がありますか?
私の一般的なアプローチは実現可能ですか、それとも良い方法がありますか?
私はPHPとプログラミングの初心者であり、そこのフレームワークを試して克服しようとはしません。私は学習のために自分のコードでこれを取り除こうとしています。
あなたは本当にあなたのホスト名を公開するこれらのイメージを削除するべきです!あなたの投稿にあなたのSQLを置くことができます – Cfreak
あなたはこれまでのコードを投稿できますか? – jeroen
JOINについて学びたい。結合コマンドは、SQLが行うことの基本的な部分であり、スプレッドシートにすべてのデータを格納することとは区別されます。 JOINについて学ぶと、レベルアップを2回行い、SQLの真のパワーの大部分を解放します! [Here](http://www.tizag.com/sqlTutorial/sqljoin.php)は、あなたを始められる多くの簡単なチュートリアルの1つです。 protip:一部の人は、内部結合と外部結合について話をしてJOINを導入したいと思っています。まっすぐですが、初心者としては、ほとんどの場合、内部結合を使用しているので、他のものがあなたを混乱させないようにしてください。 – octern