簡體   English   中英

PHP獲取關聯數組-從MySQL DB中選擇多行

[英]PHP Fetch Associative Array - Selecting Multiple Rows from MySQL DB

目前,我可以從數據庫表中選擇一行的數據。 我想知道如何從特定的不同行中選擇信息,而不必每次都更改代碼以適合我的需求。 這是我網站上的新聞文章。

這是我的代碼:

<?php
session_start();
if(!$_SESSION['username']) {
header('location:index.php');
}
require 'connect.php';
$tbl_name = 'news';
$sql = "SELECT id, title, description, content FROM $tbl_name ORDER BY id DESC LIMIT 3";
$articles = array();
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
printf ('<p class="sidenav">1. <a href="../news.php?article=%o">%s</a></p>',$row["id"],$row["title"]);
?>

現在,如您所見,我選擇了3行。 如何從多個行輸出數據? 目前,如果我有多於一行,它將不會輸出任何內容。 有沒有一種方法可以精確地確定某些信息,而不必選擇具有特定id的行?

更新:我現在已經獲得了這段代碼,但是如果我想一次打印多個代碼該怎么辦?

$result = mysqli_query($conn, $sql);
while ($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) {
printf ('<p class="sidenav">1. <a href="../news.php?article=%o">%s</a></p>',$row["id"],$row["title"]);
printf ('<p class="sidenav">2. <a href="../news.php?article=%o">%s</a></p>',$row["id"],$row["title"]);
printf ('<p class="sidenav">3. <a href="../news.php?article=%o">%s</a></p>',$row["id"],$row["title"]);
}
$result = mysqli_query($conn, $sql);
while ($row = mysqli_fetch_array($result,MYSQLI_ASSOC)) {
    printf ('<p class="sidenav">1. <a href="../news.php?article=%o">%s</a></p>',$row["id"],$row["title"]);
}

我可以使用以下代碼完成此操作。

<?php
$i = 0;
$sql = "SELECT id, title FROM news ORDER BY id DESC LIMIT 3";
if ($stmt = mysqli_prepare($conn, $sql)) {

/* execute statement */
mysqli_stmt_execute($stmt);

/* bind result variables */
mysqli_stmt_bind_result($stmt, $id, $title);

/* fetch values */
while (mysqli_stmt_fetch($stmt)) {
    $i++;
    printf ('<p class="sidenav">' . $i . '. <a href="../news.php?article=%o">%s</a></p>',$id,$title);
}

/* close statement */
mysqli_stmt_close($stmt);
}
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM