2010-06-14 60 views
1

我在我的代码中有一个小问题,我需要你的帮助。以及Im使用fetch_assoc从数据库中获取数据,我需要得到每个返回值的ID号。问题是我的代码只返回最后数据的ID号。这里是我的代码:使用fetch_assoc返回确切的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。请帮忙。

回答

1

您最好的选择是将中的id值OD选项

.... 
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

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

我想隐藏的输入型 持有选定专辑的ID,但它始终 保持最后 数据的相册ID。请帮忙。

要做到这一点,您将不得不使用javascript在选择框更改事件时设置隐藏字段的值。

+0

这会工作,但过度杀伤,最好是只使用ID的选项值,并忘记隐藏的输入。 – Lizard 2010-06-14 09:29:11

+0

@lizard,是的,但'Selom'想要这个。我不知道他的最终目标是什么?也许他需要根据选项中选择的值进行一些基于JavaScript的计算。这就是为什么我按照他的要求直接回答的原因。 – 2010-06-14 11:12:38