使用fetch_assoc返回确切的ID

时间:2010-06-14 09:21:39

标签: php pdo

我的代码中有一个小问题,我需要你的帮助。好吧我使用fetch_assoc从数据库中获取数据,我需要获取每个返回值的ID号。问题是我的代码只返回最后一个数据的ID号。这是我的代码:

<form method="post" action="action.php">

  <select name="album" style="border:1px solid #CCC; font-size:11px; padding:1px">

       <?php

          $sql = "SELECT * FROM table";
          $stmt = $dbh -> prepare($sql);
          $stmt -> execute();

          while($row = $stmt -> fetch(PDO::FETCH_ASSOC))
          {

            $album_ID = $row['album_ID'];
            $value = $row['album_name'];         
            print "<option value ='". $value ."'>". $value. "</option>";


          }

       ?>

  </select>
  <input type="hidden" name="album_ID" value="<?php print $album_ID?>"/>
</form>

我希望隐藏的输入类型包含所选的专辑ID,但它始终保存最后一个数据的专辑ID。请帮忙。

2 个答案:

答案 0 :(得分:1)

您最好的选择是将id放在选项值

....
while($row = $stmt -> fetch(PDO::FETCH_ASSOC))
{

    $album_ID = $row['album_ID'];
    $value = $row['album_name'];         
    print "<option value ='". $album_ID ."'>". $value. "</option>";


}

....

然后在提交脚本(admin.php)上,POST变量album将包含ID,不需要隐藏输入

答案 1 :(得分:1)

隐藏字段将始终包含最后一行的ID。

  

我想要隐藏的输入类型   保存所选的专辑ID,但它   始终保持最后一个的专辑ID   数据。请帮忙。

要实现此目的,您必须使用javascript在选择框的更改事件上设置隐藏字段的值。