如何使用 PHP 从 mySQLi 查询中回显每一行?
Posted
技术标签:
【中文标题】如何使用 PHP 从 mySQLi 查询中回显每一行?【英文标题】:How to echo each row from mySQLi query using PHP? 【发布时间】:2017-01-01 13:43:44 【问题描述】:以下查询返回活动表中 user_id 为 1 的所有行:
SELECT * FROM campaign WHERE user_id=1
在测试的情况下,这是两个结果。我如何能够从每一行回显一组列。例如,我想从每个结果中回显campaign_name。我尝试了各种方法,但都没有成功。
我的最终目标是这样的:
<?php foreach($queryRow as $row) ?>
<li>
<a>
<div>
<p><?php echo($row['campaign_name']); ?></p>
<p>
Description Text
</p>
</div>
</a>
</li>
<?php ?>
我对此感到很困惑,所以如果我的预期结果完全不正确,我深表歉意......
【问题讨论】:
您确定您的查询返回两行吗? 你读过the documentation吗?里面有很多例子。 也许您应该显示更多代码。您使用的是 mysqli_query(或 mysqli::query)还是 PDO?如果您使用的是 mysqli_query,您使用的是什么结果模式?您是如何将数据分配给 $queryRow 的? 我的查询确实返回了两个结果,但是我只能设法回显其中一个... 【参考方案1】:试试这个:
$qry = "SELECT * FROM campaign WHERE user_id=1";
$res = mysqli_query($conn, $qry);
if(mysqli_num_rows($res) > 0) // checking if there is any row in the resultset
while($row = mysqli_fetch_assoc($res)) // Iterate for each rows
?>
<li>
<a>
<div>
<p><?php echo($row['campaign_name']); ?></p>
<p>
Description Text
</p>
</div>
</a>
</li>
<?php
它将迭代结果集中的每一行。
【讨论】:
var_dump(mysqli_num_rows($res));返回 2,但只有两个活动中的第二个被回显。【参考方案2】:我按照 Oldskool 的建议查看了文档,并意识到我使用了错误的方法来创建数组。我改为使用 mysqli_results 类的 fetch_all 特性来创建一个包含我的结果的多维数组。然后我可以使用以下代码来回显结果:
<!DOCTYPE html>
<html>
<body>
<?php
include('inc/database_initiation.php');
//print_r($userCampaigns);
foreach ($userCampaigns as $row)
//echo $row[2];
//echo $row[4];
echo $row['campaign_name'];
echo '<br>';
echo $row['promotion_coins'];
echo '<br>';
?>
</body>
</html>
include 'inc/database_initiation 如下'
<?php
session_start();
include_once 'userManagement/dbconnect.php';
if(!isset($_SESSION['userSession']))
header("Location: login.php");
$query = $MySQLi_CON->query("SELECT * FROM users WHERE user_id=".$_SESSION['userSession']);
$userRow=$query->fetch_array();
$campaignQuery = $MySQLi_CON->query("SELECT * FROM campaign WHERE user_id=1");
$userCampaigns = $campaignQuery->fetch_all(MYSQLI_ASSOC);
//$MySQLi_CON->close();
?>
【讨论】:
以上是关于如何使用 PHP 从 mySQLi 查询中回显每一行?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用视图在 php 中回显当前 Laravel 版本的版本?