2011-07-14 8 views
0

動的選択フォームを使用してMySQLデータベースに情報を送信しようとしています。ユーザーは自分の学校を選択し、その学校のリストの中からメジャーを選択することができます(すべてがMySQLテーブルから取得されます)。私はその情報をデータベースの別のテーブルに送信して保存したいと思っています。POSTを使用してMySQLデータベースに動的選択フォームを送信

<select name="school"> 
    <php 
    $sql = "SELECT school_name, school_id FROM school_table ORDER BY school_name"; 
    $query = mysql_query($sql,$conn); 

    while($row = mysql_fetch_array($states)) 
    { 
    echo ("<option value=$row[school_id]>$row[school_name]</option>");   
    } 
    ?> 
</select> 

私は第2の選択を行う方法がわからない、理想的に最初のテーブルからschool_idを認識して対応するとそれを一致します

この

は私がこれまでのコードのために持っているものです第2の表の school_idには、その学校のメジャーも掲載されています。また、フォームが最終的にMySQLテーブルに送信されたときにフォームを送信する方法もわかりません。

答えて

0

コンボボックスの値をサーバーにHTTP POSTまたはHTTP GETとして送信し、その値をSQLステートメントの変数として使用するか、単純なAJAX要求を使用して送信できますあなたのPHPスクリプトに必要な情報。とにかく、あなたのサーバー側のコードは次のようになります。クライアント側で

//process.php 
$myRetrievedValue = $_POST["school"]; 
$mySqlStm = "SELECT * FROM foo WHERE bar = '".mysql_escape_string($myRetrivedValue)."'"; 

を、あなたはコードが(簡単なフォームなしAJAXのものを使用して)次のようになります。

<form action="process.php" method="post"> 
<select name="school"> 
<php $sql = "SELECT school_name, school_id FROM school_table ORDER BY school_name"; 
     $query = mysql_query($sql,$conn); while($row = mysql_fetch_array($states)) { 
     echo ("<option value=$row[school_id]>$row[school_name]</option>");   } ?> 
</select> 
<input name="" type="submit" /> 
</form> 

忘れないでください:するたびにあなたはSQLインジェクションを避けるために、あなたが用意したステートメント(または少なくとも上記のエスケープメソッド)を使用してクエリを入力してください。

+0

mysql_escape_stringは廃止され、使用すべきではありません –

0

答えが加わり使って1 SELECTで両方のテーブルから選択することです: http://dev.mysql.com/doc/refman/5.0/en/join.html

INNER JOIN 

    SELECT `school_table`.`school_name`, 
      `school_table`.`school_id`, 
      `2ndTable`.`school_id`, 
      `2ndTable`.`major`, 
       FROM school_table,2ndTable 
       WHERE `school_table`.`school_id`=`2ndtable`.`school_id` 
       ORDER BY school_name 

or a 
LEFT JOIN (returning all columns in the left) 

    SELECT `school_table`.`school_name`, 
      `school_table`.`school_id`, 
      `2ndTable`.`major`, 
      `2ndTable`.`school_id` 
       FROM school_table 
       LEFT JOIN on `school_table`.`school_id`=`2ndtable`.`school_id` 
       ORDER BY school_name 
関連する問題