PHP MySQL 专栏总计

标签 php mysql sql

我需要一些帮助来修复我的一些代码。

我有一个从表中提取多行的查询,但我需要它来计算“价格”列之一中的总值。

我的总计算工作正常并输出,但它似乎打破了我在页面下方的重复区域。我假设它与 WHILE 语句有关,但我不完全确定如何修复它。任何人都可以建议一种修复方法或提供替代方法。

mysql_select_db($database_otters, $otters);
$query_CartDetails = "SELECT eventregistrations.*, swimmers.*, events.*, eventtypes.*, timetable.*     FROM eventregistrations LEFT JOIN swimmers ON eventregistrations.SwimmerID=swimmers.SwimmerID LEFT JOIN events ON eventregistrations.EventID=events.EventID JOIN eventtypes ON events.EventTypeID=eventtypes.EventTypeID JOIN timetable ON eventregistrations.ParentDiaryID=timetable.DiaryID WHERE eventregistrations.SessionID = '$sessionid'";
$CartDetails = mysql_query($query_CartDetails, $otters) or die(mysql_error());
$row_CartDetails = mysql_fetch_assoc($CartDetails);
$totalRows_CartDetails = mysql_num_rows($CartDetails);

$cartvalue= 0;
while ($num = mysql_fetch_assoc($CartDetails)) {
    $cartvalue += $num['Price'];
}

这是重复区域的代码,如果我注释掉上面的“cartvalue”部分,它可以正常工作:

<?php do { ?>
<tr>
    <td><?php echo $row_CartDetails['Fixture']; ?></td>
    <td><?php echo $row_CartDetails['EventType']; ?></td>
    <td><?php echo $row_CartDetails['SwimmerFName']; ?> <?php echo $row_CartDetails['SwimmerSName']; ?></td>
    <td>£<?php echo $row_CartDetails['EventCost']; ?></td>
</tr>
<?php } while ($row_CartDetails = mysql_fetch_assoc($CartDetails)); ?>

最佳答案

是的,问题就在这里

while ($num = mysql_fetch_assoc($CartDetails)) {
    $cartvalue += $num['Price'];
}

您正在循环遍历结果集,白色循环之后的指针将设置为结果集的末尾。因此,如果您对同一结果集进行进一步迭代,那么您很可能什么也得不到。

在这种情况下,当您需要再次进行迭代时,您需要使用

重置指针

mysql_data_seek

所以在运行第二个循环之前做一些事情

mysql_data_seek($CartDetails, 0) ; // this will set the pointer to the 1st row

注意:您正在使用已弃用的 mysql 函数版本,开始使用 mysqli 或 pdo 和准备好的语句。

关于PHP MySQL 专栏总计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24504287/

相关文章:

php - MySQL 语句拉取过多行

php - 具有1个允许的连接和PHP的HTTP实时流

MySQL 在一段时间后断开连接

php - yii 框架上的 ajax 响应非常慢

sql - 更新语句中的冗余数据

php - MySQL 在 Eloquent 中按字段排序

PHP : parsing questions then getting the keywords

php - 如何从 Smarty 中访问 Mysql 结果集?

安装 SQL Server Management Studio 后,SQL Server 服务在服务列表中不可用

php - 将数据从选择菜单传递到另一个选择菜单 AJAX Codeigniter