gpt4 book ai didi

php - 将数据存储到 PHP 数组中

转载 作者:太空宇宙 更新时间:2023-11-03 11:06:30 25 4
gpt4 key购买 nike

total_stars这是代码,它是对我正在尝试做的事情的最好解释:

$total_stars = array();
$query = "SELECT items_id FROM items";
$result = mysql_query($query);

while ($row = mysql_fetch_array($result)) {
$item_id = $row['items_id'];
$sql = "Select Count(item_id) FROM ratings WHERE item_id = '{$item_id}'";
$result = mysql_query($sql);
$total_stars[] = mysql_fetch_array($result);
}

// To see the output by entering the URL I want to print_r
print_r($total_stars);

// In the end, I am trying to JSON encode this and will later output in Java for Android
print(json_encode($total_stars));

(为了不混淆,items_id 在 items 表中,item_id(没有 's')在 ratings 表中)

现在用简单的英语:

我正在遍历项目表中的每一行。当我这样做时,在每个循环中我指的是另一个名为“评级”的表,并计算该项目的评级数量。

例如,我希望数组看起来像(65、43、55、43 等)。当然是样本数。但每个代表表中每个项目的评级总数。如何让print__r在循环内显示SQL语句的结果?

尝试使用 JOIN 的更新代码:

$query = "SELECT items_id FROM items";

$q = 'SELECT
items.items_id,
COUNT(ratings.item_id) AS rate
FROM `items`
LEFT JOIN ratings ON (ratings.item_id = items.items_id)
GROUP BY items_id';
$result = mysql_query($q);

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

$total_stars = mysql_fetch_array($result);

}

print_r($total_stars);

print_r 输出这个: 数组([0] => 783 [items_id] => 783 [1] => 0 [rate] => 0)

最佳答案

$total_stars = array();
while ($row = mysql_fetch_array($result))
{
$item_id = $row['items_id'];
$sql = "Select Count(item_id) FROM ratings WHERE item_id = '{$item_id}'";
$result = mysql_query($sql);
$row = mysql_fetch_row($result);
$total_stars[] = row[0];
}

应该这样做。

不要忘记 mysql_fetch_array 返回一个带有列索引的数组。所以 mysql_fetch_array($result) 将是您想要第一个元素的数组(MySQL 函数 COUNT() 的结果),而不是计数本身。

但正如我在评论中所说,改用连接查询。您将减少对 mysql 服务器的查询量,从第一个查询中的行数 +1(可能很多!)减少到只有一个,这是一个巨大的改进。

更新:以下是使用连接查询(Sven 查询)的方法:

$q = 'SELECT 
items.items_id,
COUNT(ratings.item_id) AS rate
FROM `items`
LEFT JOIN ratings ON (ratings.item_id = items.items_id)
GROUP BY items_id';
$result = mysql_query($q);

$total_stars = array();
while ($row = mysql_fetch_array($result))
{
$total_stars[] = $row['rate']; // Stars count is stored in $row['rate']
echo "Item id ".$row['items_id']." has rating ".$row['rate'];

}

关于php - 将数据存储到 PHP 数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11582155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com