我正在尝试显示一个名称列表(来自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>
答案 0 :(得分: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>
答案 1 :(得分:0)
您可以使用foreach循环,同时: 联合主管:
<?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>