使用表单和php从数据库中提取多个字段

时间:2013-04-05 01:04:48

标签: php mysql drop-down-menu

我有一个包含各种字段的多行数据库。

我有一个包含下拉列表的表单。 下拉列表显示数据库中每行的数据库字段之一(field_name)。

当用户选择所需的条目命中SUBMIT时,该值将传递到results.php页面,并可通过$ _POST使用。

目前所有这些都有效。

我想要一种方法从数据库中发送与所选字段的行(不仅仅是“field_name”)对应的行的其余字段以及从下拉菜单中选择的内容。

例如,如果我的数据库包含名为“name”,“date”和“age”的字段的行,我希望所有数据库行“name”出现在下拉列表中提交后,将该特定名称的“日期”和“年龄”传递给results.php,以便在该页面上使用。

<html>
<head>
<title>Drop Down Test</title>
</head>

<body style="font-family: verdana; font-size: 11px;">

<?php

//Variables for connecting to database.
$hostname = "abcd";
$username = "abcd";
$dbname = "abcd";
$password = "abcd";
$usertable = "abcd";

//Connecting to database
$connection = mysql_connect($hostname, $username, $password) OR DIE ("Unable to connect to database!");
$db = mysql_select_db($dbname);

$query = "SELECT * FROM abcd";
$result = mysql_query($query) or die(mysql_error());

?>

<h2>Drop Down Test Form</h2>

<p>Please fill out the form below and click submit.</p>

<form action="results.php" method="POST">

    <p>Drop Down Test:
        <select name='event'>
        <!-- Drop down -->
        <?php
        while($row = mysql_fetch_array($result))
    {
        echo '<option>' . $row['field_name']. '</option>';
            }
        ?>
    </select>

    <p><input type="submit" value="Submit"><p>

</form>

3 个答案:

答案 0 :(得分:0)

你应该在你的选项上添加value

echo '<option value = "'.$row['field_name'].'" name = "">' . $row['field_name']. '</option>';

然后您可以$_POST['event'];

访问它

<强>更新

从select中获取所有值,您可以使用$_SESSION变量将其传递给其他php.file。

答案 1 :(得分:0)

  //  First of all, I advice you to connect via PDO, or at least msqli, because mysql_query is depreciated.
  //  To connect with database you need:
  DEFINE("USER", "root"); 
  DEFINE("DBNAME", "test"); 
  DEFINE("DBPASSWORD", ""); 
  DEFINE("DBHOST", "localhost");
  $dbh = new PDO('mysql:host='.DBHOST.';dbname='.DBNAME,USER,DBPASSWORD,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));


   //The query:
   $sth = $dbh->prepare("SELECT name,age,date FROM test");
   $sth->execute();

  //the drop down form
    echo '<form action="results.php" method="POST">
    <select name="event"><option value=0></option>';
    while ($result = $sth->fetch(PDO::FETCH_ASSOC)) { extract($result);
    echo '<option value="date:'.$date.'-age:'.$age.'"/>'.$name.'</option>'; 
    echo '</select>
        <p><input type="submit" value="Submit"><p>
    </form>';
    }

//the event in the records.php by clicking submit
if(isset($_POST['event'])){
echo 'name:',$name'-date:',$date,'-$age',$age;
}

答案 2 :(得分:0)

这就是诀窍(在results.php中):

<?php

$hostname = "****";
$username = "****";
$dbname = "****";
$password = "****";
$usertable = "abcd";

$connection = mysql_connect($hostname, $username, $password) OR DIE ("Unable to connect to database!");
$db = mysql_select_db($dbname);

//it was this SQL query that was the key, namely the WHERE statement
$query = "SELECT * from abcd where field_name='$_POST[event]'"; 

$result = mysql_query($query) or die(mysql_error()); 
$row = mysql_fetch_row($result); 

echo "id: " . $row[0] . "<br/>";
echo "field_name: " . $row[1] . "<br/>";
//etc...

//try to throw the individual results into variables
$variable = $row[1];

echo "Check to see that the variable was passed a value: " . $variable . "<br />"; 
echo "Check to see that form selection carried over: " . $_POST['event'] . "<br />"; 

?>

我意识到这不是“最新”的做事方式,我现在会尝试让所有事情都“现代化”。

感谢您的帮助!