Как сложить значения в строке таблицы, которая извлекается из MySQL?

Я хочу добавить значения в строку таблицы, полученную из MySQL.

Это мой файл PHP:

<?php

mysql_connect('localhost','root','');
mysql_select_db('accounts');
$sql= "SELECT * FROM users1";
$list=mysql_query($sql);

?>
<html>
<head>
<title>Welcome to ScanNShop</title>
</head>
<h1>Welcome to ScanNShop</h1>

<body>

<table width="600" border="1" cellpadding="1" cellspacing="1">
<tr>

<th>No.</th>
<th>Name</th>
<th>Price</th>
<tr>

<?php

while ($users1=mysql_fetch_assoc($list)) {

echo "<tr>";

echo "<td>".$users1['pid']."</td>";

echo "<td>".$users1['name']."</td>";

echo "<td>".$users1['price']."</td>";

}

?>

</table>
</body>
</html  >

Это вывод из файла PHP.

No. Name    Price
1   bread   2.00
2   milk    2.00
3   janabab 6797994.00
4   jajajsh 846494.00

Я хочу сложить все цены и отобразить echo "Total:" thetotal

1

Решение

Я сохранил твой код простым и добавил изменения
Я мог бы дать вам другой код, но это легко понять, если вы изучаете PHP

Я добавил комментарий по изменению

mysql_connect('localhost','root','');
mysql_select_db('accounts');
$sql= ('SELECT * FROM users1');
$list=mysql_query($sql);

?>
<html>
<head>
<title>Welcome to ScanNShop</title>
</head>
<h1>Welcome to ScanNShop</h1>

<body>

<table width="600" border="1" cellpadding="1" cellspacing="1">
<tr>
<th>No.</th>
<th>Name</th>
<th>Price</th>
</tr>

<?php
//set total to zero
$total=0;
while ($users1=mysql_fetch_assoc($list)) {

echo "<tr>";

echo "<td>".$users1['pid']."</td>";

echo "<td>".$users1['name']."</td>";

echo "<td>".$users1['price']."</td>";
//set total to the price + the previous total
$total = $users1['price']+$total;

echo "</tr>";

}
//display total
echo '<tr><td></td>';
echo '<td>Total:</td>';
echo '<td>'.$total.'</td></tr>';

?>

</table>
</body>
</html  >
1

Другие решения

Другой способ суммирования строк данных — в самом запросе SQL, используя ГРУППА ПО .. С РОЛЛУПОМ (док).

Пример:

SELECT Number, Min(Name) AS Name, SUM(amount) AS Price
FROM grocery_list
GROUP BY Number WITH ROLLUP

Будет производить вывод:

Number  Name      Price
1       bread     2.00
2       milk      2.00
3       janabab   6797994.00
4       jajajsh   846494.00
NULL    bread     7644492.00

Линия с NULL — это МИНУТА (имя), СУММА (цена) по ВСЕ записи для группы «Номер».
Затем вы можете отфильтровать выходные данные, основываясь на том, какое поле имеет значение NULL, чтобы определить, как их отображать.

1

Может быть, вам нужно просто суммировать результаты в специальной переменной?

$sum = 0;
while ($users1=mysql_fetch_assoc($list)) {
$sum += $users1['price'];

echo '<tr>';
echo '<td>'.$users1['pid'].'</td>';
echo '<td>'.$users1['name'].'</td>';
echo '<td>'.$users1['price'].'</td>';
echo '</tr>';
}

echo '<tr>';
echo '<td></td>';
echo '<td>Total</td>';
echo '<td>'.$sum.'</td>';
echo '<tr>';

Не используйте двойные кавычки («) для строк. Используйте одинарные кавычки (‘);
И не используйте функции mysql_ *, они устарели.

0
По вопросам рекламы [email protected]