PHP获取关联数组 - 从MySQL数据库中选择多行

时间:2015-03-16 13:59:45

标签: php mysql associative-array

目前,我可以从数据库表中选择一行的数据。我想知道如何从特定的不同行中选择信息,而不必每次都更改代码以满足我的需要。这是我网站上的新闻报道。

这是我的代码:

<?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"]);
}

2 个答案:

答案 0 :(得分:2)

$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"]);
}

答案 1 :(得分:0)

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

<?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);
}
?>
相关问题