Php while语句不回显信息
好的,我在一个数据库中有两个不同的表,我试图使用while语句从一个表中回显一个名称,然后为每个名称回显一个选择器 例如,如果表中只有一个名称,则只有一个选择器,否则,如果有两个名称,则“选项选定值”应设置为数据库中显示的值。。。现在,所有内容都正确地进行了响应,但是为该选项选择的所有内容都不是唯一的,它们与之前的内容保持相同。因此,如果我将一个设置为disabled,选择器会将它们全部显示为disabled。。这是密码Php while语句不回显信息,php,mysql,Php,Mysql,好的,我在一个数据库中有两个不同的表,我试图使用while语句从一个表中回显一个名称,然后为每个名称回显一个选择器 例如,如果表中只有一个名称,则只有一个选择器,否则,如果有两个名称,则“选项选定值”应设置为数据库中显示的值。。。现在,所有内容都正确地进行了响应,但是为该选项选择的所有内容都不是唯一的,它们与之前的内容保持相同。因此,如果我将一个设置为disabled,选择器会将它们全部显示为disabled。。这是密码 <?php $userID = $_G
<?php
$userID = $_GET['uid']; // from the query string in the link
$_SESSION['userid'] = $userID;
$query = $con->prepare("SELECT * FROM users WHERE ID = '". $userID ."'") or die(mysqli_error());
$query->execute();
$user=$query->fetch(PDO::FETCH_ASSOC);
// echo out user details:
echo '<b>' . 'User Info:' . " " . '</b>';
echo '<br>';
echo $user['last']. "," . " " .$user['first'];
echo '<br>';
echo 'Business Unit';
echo '<br>';
echo $user['busunit'];
echo '<br>';
echo 'Location';
echo '<br>';
echo $user['location'];
echo '<br>';
echo 'Position';
echo '<br>';
echo $user['position'];
echo '<br>';
echo '<br>';
echo '<b>Access Info</b>';
echo '<br>';
$number = '1';
$number++;
$new = 'op' . $number;
$stmt = $con->prepare("SELECT * FROM access");
$stmt->execute();
$userIDi = $user['ident'];
$q = $con->prepare("SELECT * FROM priv WHERE ident = :ID ");
$q->bindparam(":ID", $userIDi);
$q->execute();
$priv=$q->fetch(PDO::FETCH_ASSOC);
$val1 = 'Yes';
$val2 = 'No';
echo '<form method="post">';
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
echo $row['name'];
echo ' ';
echo '
<select id='.$new.'>
<option value="Yes"';
if($priv[$new]==$val1){echo 'selected="selected"';} echo '>Enabled </option>';
echo '<option value="No"';
if($priv[$new]==$val2){echo 'selected="selected"'; } echo '>Disabled </option>';
echo '</select>';
echo '<br>';
}
echo '<br>';
echo '<input type="submit" name="submit"/>';
echo '</form>';
您的中没有任何内容当
在循环过程中实际发生变化时,您所要做的就是反复输出不同的$row['name']
和相同的$priv[$new]
数据。$priv[$new]
不是应该以某种方式特定于每次迭代获取的$row
吗?是的,我不知道如何获取它。。这就是为什么我问这个问题的原因我现在已经这样试过了,但是仍然不能在($row=$stmt->fetch(PDO::fetch_ASSOC)){echo$row['name'];echo';echo';echo';while($priv=$q->fetch(PDO::fetch_ASSOC)){echo'启用'}echo'禁用';}}回声“”;回声“
”;}
我认为你应该做你的$stmt=$con->prepare(“SELECT*FROM access”)
在循环内,并将查询限制为$row
中的当前数据,然后只使用返回的第一行。@TonyBogdanov更新了上面的代码
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
echo $row['name'];
echo ' ';
echo '
<select id='.$new.'>';
while($priv=$q->fetch(PDO::FETCH_ASSOC)){
echo '<option value="Yes"'; if($priv[$new]==$val1){echo 'selected="selected"' . '>Enabled </option>';}
echo '<option value="No"'; if($priv[$new]==$val2){echo 'selected="selected"' . '>Disabled </option>'; }
}
echo '</select>';
echo '<br>';
}
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
echo $row['name'];
echo ' ';
echo '
<select id='.$new.'>
<option value="Yes"';
while($priv=$q->fetch(PDO::FETCH_ASSOC)){
if($priv[$new]==$val1){echo 'selected="selected"';} echo '>Enabled </option>';
echo '<option value="No"';
if($priv[$new]==$val2){echo 'selected="selected"'; }} echo '>Disabled </option>';
echo '</select>';
echo '<br>';
}
echo '<br>';
echo '<input type="submit" name="submit"/>';
echo '</form>';