1

私はこれに少し問題があります

以下のような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

問題

ページはレンダリングされますが、私が使用SELECT * FROM user WHERE Username IN ('john', 'sarah', 'james')した場所では、3 つの名前ではなく 1 つの名前しか表示されません。

phpmyadminで試してみると、3つの名前すべてが表示されるため、selectステートメントが機能することはわかっています

4

2 に答える 2

0

これを試して:

while($row1 = $stmt1->fetch(PDO::FETCH_ASSOC)) {
?>  
<div><?php echo $row1['username']; ?> </div>
<?php } ?>

また、削除$stmt1->bindParam('id',$id);

最初の行のみを読み取るため、行を取得するたびif($row1)に呼び出して出力をループする必要があります。$stmt1->fetch(PDO::FETCH_ASSOC)

于 2013-08-25T12:37:00.497 に答える