更新数据库值时在下拉框中获取值

时间:2012-06-27 16:12:15

标签: php sql

我在更新数据库中的某些值时遇到问题。 当我想使用下拉框更改值时,它会自动输入下拉菜单中的第一个值。我想要的是获取已在数据库中设置的值。

这是我的代码:

<select name="vrijwilligerID">
<?php           
    $vrijwilligerID = $_POST["vrijwilligerID"];
    $query = "SELECT voornaam, achternaam, vrijwilligerID FROM vrijwilliger;";
    $result = mysql_query($query);
    while($row=mysql_fetch_array($result)){
        echo "<option value=".$row['vrijwilligerID'].">".$row["voornaam"]." ".$row["achternaam"]."</option>";
    }
?>              
</select>

有谁知道如何做到这一点? 提前谢谢。

2 个答案:

答案 0 :(得分:2)

根据所选项目,您必须将所选属性添加到选项中。

试试这个

<select name="vrijwilligerID">
                <?php           
                    $vrijwilligerID = $_POST["vrijwilligerID"];

                    $query ="   SELECT voornaam, achternaam, vrijwilligerID
                                FROM vrijwilliger;";

                    $result = mysql_query($query);

                    while($row=mysql_fetch_array($result)){
                      if($row["vrijwilligerID"]==$vrijwilligerID)
                           echo "<option value=".$row['vrijwilligerID']." selected>".$row["voornaam"]." ".$row["achternaam"]."</option>";

                     else
                          echo "<option   value=".$row['vrijwilligerID'].">".$row["voornaam"]." ".$row["achternaam"]."</option>";
                    }
                    ?>              
        </select>

答案 1 :(得分:0)

使用php解决这个问题很容易,但是使用mysqls IF()函数可以直接选择选项。使用mysqls concat(),你也可以得到你想要的结果。

(当然我们没有在我们的脚本中使用任何postvars未经过我们处理;)

$iVrijwilligerid = filter_input(INPUT_POST, 'vrijwilligerID', FILTER_VALIDATE_INT, array("options"=> array("min_range"=>0, "max_range"=>999))) ;

if($iVrijwilligerid)
{
  $sQry = <<<QRY
      SELECT
        CONCAT('<option value="', vrijwilligerID, '"',IF((SELECT vrijwilligerID FROM vrijwilliger WHERE vrijwilligerID=$iVrijwilligerid), ' selected="selected"', '' ),'>',voornaam, ,achternaam,'</option>') AS optItem
      FROM
        vrijwilliger
      WHERE
        your clause here
QRY;
  $oResult = mysql_query( $sQry );
  while($aRow=mysql_fetch_assoc( $oResult ))
  {
    echo $aRow['optItem'];
  }
}
else
{
  // nada
}