2012-04-05 18 views
0

登録時にユーザーが記入するフォームが私のサイトにあります。すべての登録は「登録」テーブルに格納されます。
id、username、password、firstname、lastname、email、gender、jobtitle、f1、国、f2、fbook、f3、fmovie、f4のようになります。フォーム提出時に別のテーブルからデータを取得する

jobtitlefbookfmovieは、ドロップダウンメニューです。それらのドロップドウォンメニューの値は、以下の構造のextrainfoと呼ばれる別のテーブルにも格納されます。 jobtitle、f1、国、f2、fbook、f3、fmovie、f4。

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

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

どうすればこの問題を解決できますか?

+1

あなたが何をしようとしたことがありますか? – nithi

答えて

0

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

+0

私に例を教えてもらえますか?事前に感謝 – Dreni

+0

何の例?選択クエリを実行するには?もちろん、それはマニュアルにあります:[SELECT Syntax(MySQL)](http://dev.mysql.com/doc/refman/5.5/en/select.html) – hakre

0

フォーム送信後

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

はすべてのために、このように登録テーブルに挿入とextrainfoから値を取得します$ _POST

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

によって選択ボックスの値を取得します。この

のようにしてみてください列

mysql_query("insert into registration(f1)values('$j[0]')"); //insert the f1 into registration table 
0

あなたがちょうどそれらにすでに値でドロップダウンを構築するのではなく、その後それらを見ることができる:

f1_valueは各jobtitleため extrainfoテーブルから値をある
<SELECT name="jobtitle"> 
    <OPTION value="f1_value">Decorator</OPTION> 
    <OPTION value="f1_value">Welder</OPTION> 
</SELECT> 

。あなたが最初の配列にして情報を読み取る場合にも<OPTION>...</OPTIONS>を構築するためにforeach構造を使用することができます。

<?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> 
関連する問題