Отправка формы динамического выбора в базу данных MySQL с помощью POST - PullRequest
0 голосов
/ 15 июля 2011

Я пытаюсь использовать форму динамического выбора для отправки информации в базу данных MySQL.Пользователь сможет выбрать свою школу, а затем выбрать свою специальность из списка этой школы (все полученные из таблицы 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>

Я не знаю, как сделать второй выбор, который в идеале распознал бы school_id из первой таблицыи сопоставьте его с соответствующим school_id на второй таблице, в которой также перечислены основные предметы в этой школе.Кроме того, я не знаю, как отправить форму, когда она, наконец, сделана в таблицу MySQL.

Ответы [ 2 ]

0 голосов
/ 15 июля 2011

ответ - выбрать из обеих таблиц в одном 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
0 голосов
/ 15 июля 2011

Вы можете использовать простую форму для отправки значения из комбинированного списка на сервер (как 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-инъекций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...