PHP从同一列中选择多个项目以在页面中呈现

PHP从同一列中选择多个项目以在页面中呈现,php,mysql,Php,Mysql,伙计们,我对这件事有点意见 我有一个select语句,如下所示 $stmt = $conn->prepare("SELECT * FROM Product WHERE id=:id"); $stmt->bindParam('id',$id); $stmt->execute(); $row = $stmt->fetch(PDO::FETCH_ASSOC); if($row) {]; ?> <div> &

伙计们,我对这件事有点意见

我有一个select语句,如下所示

$stmt = $conn->prepare("SELECT * FROM Product WHERE id=:id");
    $stmt->bindParam('id',$id);
    $stmt->execute();
    $row = $stmt->fetch(PDO::FETCH_ASSOC);
    if($row) {];
        ?>  
<div>  <?echo $row['Name']; >? </div>
<div>  <?echo $row['Type']; >? </div>


$stmt1 = $conn->prepare("SELECT * FROM user WHERE Username IN ('john', 
                                'sarah', 'james')");
        $stmt1->bindParam('id',$id);
        $stmt1->execute();
        $row1 = $stmt1->fetch(PDO::FETCH_ASSOC);
        if($row1) {];
            ?>  
    <div>  <?echo $row1['username']; ?>' </div>

      <? } ?> //closing for the second select statement 

<? } ?>  //closing for the first select statement
$stmt=$conn->prepare(“从产品中选择*,其中id=:id”);
$stmt->bindParam('id',$id);
$stmt->execute();
$row=$stmt->fetch(PDO::fetch_ASSOC);
若($行){];
?>  
尝试:

而不是if($row1)使用while($row1)

如果循环只运行一次,那么只要有结果可循环,循环就会运行。

尝试以下方法:

while($row1 = $stmt1->fetch(PDO::FETCH_ASSOC)) {
?>  
<div><?php echo $row1['username']; ?> </div>
<?php } ?>
while($row1=$stmt1->fetch(PDO::fetch_ASSOC)){
?>  
同时删除
$stmt1->bindParam('id',$id);


因为
if($row1)
只读取第一行,所以每次检索行时需要调用
$stmt1->fetch(PDO::fetch_ASSOC)
来循环输出。

为什么要使用$stmt1->bindParam('id',$id);?它在哪里绑定参数?在第二个选择中。@Mihai我有它,因为我是根据用户正在查看的内容推荐的一个项目。我真的不需要它,谢谢你发现了它。