如何在php中的选项框上加载数据

时间:2010-05-03 12:44:07

标签: php mysql html

我在使用php将mysql数据加载到选项框时遇到问题。这是我的代码:

<?php

  $con = mysql_connect("localhost","myuname","mypassword");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("school", $con);

 $idnum= mysql_real_escape_string($_POST['idnum']);

  $result = mysql_query("SELECT * FROM student WHERE IDNO='$idnum'");
?>

<?php while ( $row = mysql_fetch_array($result) ) { ?>

<tr>
<td width="30" height="35"><font size="2">*I D Number:</td>
<td width="30"><input  name="idnum"  type="text" maxlength="5" value="<?php echo $row["IDNO"]; ?>" readonly="readonly"></td>
</tr>

我的问题是在这里加载:

<td><font size="2">Gender</td>
<td>
    <select name="gender" id="gender">
        <font size="2">
        <option value="<?php echo $line['IDNO']; ?> "><?php $line['GENDER'] ; ?></option>



    </select></td></td>

表格如下:

    IDNO | GENDER  
    123  |  M
    321  |  F

我应该做什么?加载与IDNO对应的确切性别?

2 个答案:

答案 0 :(得分:0)

如果我理解,你的脚本会加载两行而不是一行。无论如何,这有点奇怪,因为你有一个非常具体的查询(SELECT * FROM student WHERE IDNO='$idnum')...所以,你为什么不把它改成这个?:SELECT * FROM student WHERE IDNO='$idnum' LIMIT 1所以你现在可以确定它会只加载一行。

再见!

答案 1 :(得分:0)

注意:您错误地使用$line而不是$row作为选项,因此无法获得结果。

注2:从查询中看,您只需提取一条记录:

"SELECT * FROM student WHERE IDNO = '$idnum'"

因此不需要循环(我假设IDNO是表的主键)。但是,如果要读取表的所有记录,则查询应如下所示:

"SELECT * FROM student"

如何进行:

将选择框 放在 之前while循环:

<select name="gender" id="gender">

然后您的while循环选项:

<?php while ( $row = mysql_fetch_array($result) ) { ?>
<option value="<?php echo $row['IDNO']; ?> "><?php $row['GENDER'] ; ?></option>

关闭while循环

<?php } ?>

最后关闭选择框

</select>

总而言之,你的代码应该看起来像这样(不包括数据库内容):

<select name="gender" id="gender">
  <?php while ( $row = mysql_fetch_array($result) ) { ?>
  <option value="<?php echo $row['IDNO']; ?> "><?php $row['GENDER'] ; ?></option>
  <?php } ?>
</select>