0

我正在尝试显示用户可以在我的表单中选择作为其主管的名称列表(来自 oracle db)。

下面的代码仅显示 db 中名字中的一个字母。例如:db 中的名字是 'nanie',但它只显示 'n'。

请帮助我更正此代码。

    <?php 
    $sql3= oci_parse($conn,"SELECT stfname FROM staff") or die ('None'); 
    $result3=oci_execute($sql3); 
    $row3 = oci_fetch_array($sql3,OCI_ASSOC+OCI_RETURN_NULLS);  
    echo $row3['STFNAME'];
    ?>

    <td><strong>Co-supervisor : </strong></td>
    <td width="309">
        <?php echo '<select name="cosupervisor">'; 
            foreach($row3 as $value)
        {
              echo '<option value="'.$value['STFNAME'].'">'.$value['STFNAME'].'</option>';                          } 
        echo '</select>'; ?>
    </td>
4

2 回答 2

0

使用while而不是foreach循环

<?php 
$sql3= oci_parse($conn,"SELECT stfname FROM staff") or die ('None'); 
$result3=oci_execute($sql3); 
//$row3 = oci_fetch_array($sql3,OCI_ASSOC+OCI_RETURN_NULLS);  
//echo $row3['STFNAME'];
?>

<td><strong>Co-supervisor : </strong></td>
<td width="309">
    <?php 
    echo '<select name="cosupervisor">'; 
      while($row3 = oci_fetch_array($sql3,OCI_ASSOC+OCI_RETURN_NULLS))
    {
        echo '<option value="'.$row3['stfname'].'">'.$row3['stfname'].'</option>';                          
    } 

    echo '</select>'; 

   ?>
</td>
于 2013-09-17T04:40:49.637 回答
0

您可以使用 foreach 循环 while 作为: Co-supervisor :

    <?php 
    echo '<select name="cosupervisor">'; 
      while($row3 = oci_fetch_array($sql3,OCI_ASSOC+OCI_RETURN_NULLS))
    {
        $data[] = $row3 ;                         
    } 

     foreach($data as $value)
        {
              echo '<option value="'.$value['STFNAME'].'">'.$value['STFNAME'].'</option>';                          } 
        echo '</select>'; ?>
    </td> 

   ?>
</td>
于 2013-09-17T05:21:11.967 回答