0

私のサイトには、ユーザーが登録時に入力するフォームがあります。すべての登録は「登録」テーブルに格納されます。テーブル構造は次のようになります:
ID、ユーザー名、パスワード、名、姓、電子メール、性別、役職、f1、国、f2、fbook、f3、fmovie、f4。

jobtitlecountryfbook、fmovieはドロップダウン メニューですこれらのドロップダウン メニューの値は、次の構造を持つ「extrainfo」という別のテーブルにも保存されます: jobtitle, f1, country, f2, fbook, f3, fmovie, f4.

ユーザーがフォームを送信すると、jobtitle、country、fbook、および fmovie フィールドの値がチェックされ、"extrainfo" テーブルから値が取得されます。

したがって、ユーザーが jobtitle ドロップダウン メニューで「DECORATOR」を選択すると、「extrainfo」テーブルの f1 列から値を取得し、「registration」テーブルの f1 列に挿入する必要があります。

どうすればこれを達成できますか?

4

3 に答える 3

0

これを実現するには、送信された値を読み込み、データが一致する行を選択してSQLクエリを使用してデータベース内のデータと比較します。

于 2012-04-05T07:15:46.490 に答える
0

フォーム送信後、次のようにしてください

$_POSTで選択ボックスの値を取得します

$jobtitle = $_POST['jobtitle']; //name of select box is assumed as jobtitle

extrainfoから値を取得します

$r = mysql_query("select f1 from extrainfo where jobtitle='$jobtitle'); //get f1 from extrainfo
$j = mysql_fetch_row($r);

すべての列について、このように登録テーブルに挿入します

mysql_query("insert into registration(f1)values('$j[0]')"); //insert the f1 into registration table
于 2012-04-05T07:35:52.647 に答える
0

後で値を調べるのではなく、値がすでに含まれているドロップダウンを作成することができます。

<SELECT name="jobtitle">
    <OPTION value="f1_value">Decorator</OPTION>
    <OPTION value="f1_value">Welder</OPTION>
</SELECT>

ここで、各役職のテーブルf1_valueの値です。最初に配列に情報を読み込む場合はextrainfo、構造体を使用してforeachを構築することもできます。<OPTION>...</OPTIONS>

<?php
$q="select * from extrainfo";
if ($r=mysql_query($q))
{
  $m=array();
  while ($row=mysql_fetch_assoc($m))
  {
    $m[]=$row;
  }
?>
<SELECT name="jobtitle">
<?php
  foreach ($m as $line)
  {
    echo '<OPTION value="'.$line['f1'].'">'.$line['jobtitle'].'</OPTION>';
  }
?>
</SELECT>
于 2012-04-05T07:59:49.603 に答える