[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подсчёт массива в цикле
freaky
Подскажите, что нужно делать, совсем не знаю! Есть цикл и в нём надо подсчитать все строки массива, например mas.

do  {            
printf ("<table aligh='center' border='0' cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#FFFF00' width='440'> <tr>
<td width='150'> <a href='view_player.php?id=%s'><font face='Verdana' color='#00FFFF' size='1'>%s</a></td>
<td width='100'><font face='Verdana' color='#00FFFF' size='1'>%s</td>
<td width='35'><font face='Verdana' color='#00FFFF' size='1'>%s</td>
<td width='35'><font face='Verdana' color='#00FFFF' size='1'>%s</td>
<td width='35'><font face='Verdana' color='#00FFFF' size='1'>%s</td>
<td width='55'><font face='Verdana' color='#00FFFF' size='1'></td>
</tr>


</table>"
,$myrow["id"], $myrow["namepl"],$myrow["nat"],$myrow["age"],$myrow["pos"],$myrow["mas"]);
}
while ($myrow = mysql_fetch_array ($result));


Допустим в столбце mas из базы вевелось 20 строк, нужно сложить все строки и получить сумму.



Спустя 20 минут, 38 секунд (15.12.2009 - 12:43) twin написал(а):
Настоятельно рекомендую ознакомиться с этим и к курсу г-на Попова относиться с настороженностью.
Что по теме, то если нужно количество строк, то есть функция mysql_num_rows(), а если нужна сумма значений ячейки `mas`, то оператор SQL SUM()

Спустя 18 минут, 17 секунд (15.12.2009 - 13:01) freaky написал(а):
Нужно писать запрос из БД с помощью SQL SUM...я просто не знаю как это сделать...немного не понял...можно пожалуйста по подробнее..?

Спустя 1 минута, 49 секунд (15.12.2009 - 13:03) twin написал(а):
Для начала приведи скрипт в порядок. Иначе это мертвому припарка.

Спустя 7 минут, 52 секунды (15.12.2009 - 13:11) freaky написал(а):
в такой вид?

$sql = ("SELECT * FROM players WHERE id_club=1"); 
$result = mysql_query($sql) or die(mysql_error() ."<br/>". $sql);

$table = "<table border=0 width=100% align=center>\n";

while ($row = mysql_fetch_assoc($result))
{
$table .= "<tr>\n";

$table .= "<td>".$row['id']."</td>\n";
$table .= "<td>".$row['namepl']."</td>\n";
$table .= "<td>".$row['age']."</td>\n";

$table .= "</tr>\n";
}

$table .= "</table>\n";

echo $table;

Спустя 2 минуты, 46 секунд (15.12.2009 - 13:14) Kuliev написал(а):
freaky
Во уже лучше

$sql = ("SELECT *,SUM(mas) AS `mas` FROM players WHERE id_club=1");


Спустя 4 минуты, 29 секунд (15.12.2009 - 13:18) freaky написал(а):
выводит

Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
SELECT * ,SUM(mas) AS 'mas' FROM players WHERE id_club=1

Спустя 3 секунды (15.12.2009 - 13:18) waldicom написал(а):
Цитата (Kuliev @ 15.12.2009 - 12:14)
freaky
Во уже лучше

$sql = ("SELECT *,SUM(mas) AS `mas` FROM players WHERE id_club=1");

А разве можно использовать аггрегатные функции без группировки?

Спустя 1 минута, 14 секунд (15.12.2009 - 13:19) waldicom написал(а):
Цитата (freaky @ 15.12.2009 - 12:18)
Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
SELECT * ,SUM(mas) AS 'mas' FROM players WHERE id_club=1

Во-во, и я про то же

Спустя 48 секунд (15.12.2009 - 13:20) freaky написал(а):
что это значит? и как правильно?

Спустя 6 минут, 40 секунд (15.12.2009 - 13:27) glock18 написал(а):
можно звезды убрать. можно group by добавить. как душе угодно, в общем.

Спустя 5 минут, 28 секунд (15.12.2009 - 13:32) twin написал(а):
Я бы двумя запросами делал, если правильно понял.

Спустя 7 минут, 5 секунд (15.12.2009 - 13:39) freaky написал(а):
сделал так
$sql = ("SELECT SUM(mas) AS `mas` FROM players WHERE id_club=1");
всё считает, но он только и выводит одно число...вся таблица куда то исчезла...видимо потому что убрал * из запроса, а с ней ошибку выдаёт блин...

Спустя 3 минуты, 23 секунды (15.12.2009 - 13:43) twin написал(а):
Ну и напиши еще один запрос, который старый был. У тебя же mas не меняется в рядах, как я понял.

Спустя 6 минут, 22 секунды (15.12.2009 - 13:49) freaky написал(а):
пишу второй запрос , один за другим, вообщем таблица есть , и сумму эту общую он выводит вместо первой строки, она куда то подевалась...((

$result = mysql_query("SELECT * FROM players WHERE id_club='$id' ORDER BY number ASC",$db);
$myrow = mysql_fetch_array($result);

$result1 = mysql_query("SELECT SUM(mas) AS `mas` FROM players WHERE id_club='$id' ORDER BY number ASC");
$myrow = mysql_fetch_array($result1);

Видимо как то я это не правильно сделал..(

Спустя 2 минуты, 2 секунды (15.12.2009 - 13:51) Kuliev написал(а):
freaky

$myrow1

Спустя 12 минут, 17 секунд (15.12.2009 - 14:03) freaky написал(а):
теперь строка 1 вернулась, а вот общая куда-то пропала,
echo $myrow1 = mysql_fetch_array($result1);

я так написал, правильно? и где лучше написать вывод?

Спустя 6 минут, 1 секунда (15.12.2009 - 14:09) twin написал(а):

$res = mysql_query("SELECT SUM(mas) AS `mas` FROM players WHERE id_club='$id' ORDER BY number ASC");
$mas = mysql_result($res, 0);

$result = mysql_query("SELECT * FROM players WHERE id_club='$id' ORDER BY number ASC",$db);
$myrow = mysql_fetch_array($result);

$table = "<table border=0 width=100% align=center>\n";

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

Спустя 9 минут, 29 секунд (15.12.2009 - 14:19) freaky написал(а):
спасибо большое, наконец-то сработало...))))

Спустя 1 минута, 33 секунды (15.12.2009 - 14:20) twin написал(а):
В первом запросе не нужна сортировка. Тормозить будет.

Спустя 1 минута, 18 секунд (15.12.2009 - 14:22) freaky написал(а):
да, спасибо, уже понял, убрал)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.