猿问

使用 PHP echo 选定的 SQL 行数据

如果我从 SQL 收集多行数据,我将不得不使用 foreach 循环或其他方法来正确显示该数据。如何在不使用 foreach 循环的情况下使用这些 PHP 字符串?


以下是我的 SQL 查询


$results = $mysqli->query('SELECT * FROM specs where id in ('.$id1.','.$id2.','.$id3.','.$id4.') ');

它将产生来自 4 个不同行的数据。


上面的代码只是一个示例,下面是我在页面中使用的确切代码。


try{

    $pdo = new PDO("mysql:host=localhost;dbname=databse", "user", "password");

    // Set the PDO error mode to exception

    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch(PDOException $e){

    die("ERROR: Could not connect. " . $e->getMessage());

}

 

// Attempt select query execution

try{

    $sql = "SELECT * FROM specs WHERE id IN($id1,$id2,$id3,$id4)";

    $result = $pdo->query($sql);

    $results = $result->fetchAll();


} catch(PDOException $e){

    die("ERROR: Could not able to execute $sql. " . $e->getMessage());

}

 

// Close connection

unset($pdo);

目前,数据使用以下方式显示


<tr>

<td>Brand</td>

<?php foreach ($results as $result){ ?>

    <td> <strong><?php echo $result['brand']; ?></strong> </td>

<?php } ?>

</tr>

总共会有 4 个结果,我想分别使用这 4 个结果。如果结果是 Samsung、Sony、Apple、LG - 我如何仅使用 PHP 字符串来回显“Apple”?


大话西游666
浏览 80回答 1
1回答

森栏

获取所有行。如果您有MySQL 本机驱动程序:$rows = $results->fetch_all(MYSQLI_ASSOC);否则,使用循环获取:while($rows[] = $results->fetch_assoc());然后你可以按行访问它们:echo $rows[0]['brand'];&nbsp; // first rowecho $rows[1]['brand'];&nbsp; // second row但这不是很有用。如果您想要使用一些独特的东西(我使用brand作为示例,尽管它可能不是),那么只需对其进行索引:$rows = array_column($results->fetch_all(MYSQLI_ASSOC), null, 'brand');// orwhile($row = $results->fetch_assoc()) { $rows[$row['brand']] = $row; }// thenecho $rows['apple']['model'];
随时随地看视频慕课网APP
我要回答