如果我從 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 executiontry{ $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 connectionunset($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”?
1 回答

森欄
TA貢獻1810條經驗 獲得超5個贊
獲取所有行。如果您有MySQL 本機驅動程序:
$rows = $results->fetch_all(MYSQLI_ASSOC);
否則,使用循環獲?。?/p>
while($rows[] = $results->fetch_assoc());
然后你可以按行訪問它們:
echo $rows[0]['brand']; // first row
echo $rows[1]['brand']; // second row
但這不是很有用。如果您想要使用一些獨特的東西(我使用brand作為示例,盡管它可能不是),那么只需對其進行索引:
$rows = array_column($results->fetch_all(MYSQLI_ASSOC), null, 'brand');
// or
while($row = $results->fetch_assoc()) { $rows[$row['brand']] = $row; }
// then
echo $rows['apple']['model'];
- 1 回答
- 0 關注
- 100 瀏覽
添加回答
舉報
0/150
提交
取消