如何显示多个提取的数据?

时间:2016-09-24 14:18:41

标签: php html sql mysqli

我使用以下内容从数据库中获取最新文章:

//Latest Article
$title_query1 = "SELECT title FROM articles ORDER BY id DESC LIMIT 1";
$description_query1 = "SELECT description FROM articles ORDER BY id DESC LIMIT 1";
$content_query1 = "SELECT content FROM articles ORDER BY id DESC LIMIT 1";
$image_query1 = "SELECT image FROM articles ORDER BY id DESC LIMIT 1";

$title_result1 = mysqli_query($con, $title_query1) or die(mysqli_error($con));
$description_result1 = mysqli_query($con, $description_query1) or die(mysqli_error($con));
$content_result1 = mysqli_query($con, $content_query1) or die(mysqli_error($con));
$image_result1 = mysqli_query($con, $image_query1) or die(mysqli_error($con));

//Second Latest Article
$title_query2 = "SELECT title FROM articles ORDER BY id DESC LIMIT 2,1";
$description_query2 = "SELECT description FROM articles ORDER BY id DESC LIMIT 2,1";
$content_query2 = "SELECT content FROM articles ORDER BY id DESC LIMIT 2,1";
$image_query2 = "SELECT image FROM articles ORDER BY id DESC LIMIT 2,1";

$title_result2 = mysqli_query($con, $title_query2) or die(mysqli_error($con));
$description_result2 = mysqli_query($con, $description_query2) or die(mysqli_error($con));
$content_result2 = mysqli_query($con, $content_query2) or die(mysqli_error($con));
$image_result2 = mysqli_query($con, $image_query2) or die(mysqli_error($con));

但是,我不知道如何能做到这样的事情:

 <h1>Here is the first article: <?php $title_result1 ?><h1>
 <h2>Here is the first article description: <?php $description_result1 ?>

 <h1>Here is the second article: <?php $title_result2 ?><h1>
 <h2>Here is the second article description: <?php $description_result2 ?>

另外,这种方法不好吗?如果我要为100多篇文章做这件事,会导致网页加载速度慢吗?

由于

1 个答案:

答案 0 :(得分:1)

您不需要为每列执行单个查询。您可以通过执行select *来获取行的所有列。另外,如上所述,您可以根据需要获取任意数量的行,并循环遍历它们。

我更喜欢while方法。例如,显示最近100篇文章

// fetch latest 100
 $sql = "SELECT * FROM articles ORDER BY id DESC LIMIT 100";

if ($result = mysqli_query($con, $sql)){
// got results, convert result object to array called $row

while ($row = mysqli_fetch_array($result)) {

// echo out $row array elements with 
//the column names from the database as array index

echo  '<h2>'. $row['title'] .'</h2>';  // example wrap results with HTML
echo '<b>' .$row['description'] .'</b>'; 
echo $row['content']; 
echo <img src="'.  $row['image'] .'" title="'.$row['description'].'">'; 
echo '<br>'; //so next result is on new line

}   // end of while loop

} else {    
//no result,  error 
}