<?php
header("Cache-Control: no-cache, must-revalidate");
header("Cache-Control: post-check=0,pre-check=0", false);
header("Cache-Control: max-age=0", false);
header("Pragma: no-cache");
require './../data/db.php';
$id_option = $_POST['id_option'];
$update_poll = mysql_query("UPDATE `poll_option` SET `number_of_poll`=(`number_of_poll`+1) WHERE `id`='".$id_option."'") or die(mysql_error());
if($update_poll === true)
{
$select_poll = mysql_query("SELECT `name`,`number_of_poll` as `num` FROM `poll_option` WHERE `id_poll`='21'") or die(mysql_error());
$i = 1;
$poll_num = 0;
while($polle = mysql_num_rows($select_poll))
{
$poll_num = $poll_num + $polle['num'];
}
while($poll = mysql_fetch_assoc($select_poll))
{
$percent = $poll['num'] * 100;
$option_percent = $percent / $poll_num;
$option_percent = floor($option_percent);
if($option_percent > 100)
{
$option_percent = round($option_percent, -2);
while($option_percent > 100)
{
$option_percent = $option_percent - 100;
}
}
$img = "template/DE_images/poll" . $i . ".gif";
echo "<div style='background: url(".$img."); width: ".$option_percent."px; height: 10px;'></div> - " . $poll['num'] . "(" . $option_percent . "%)<br>";
$i++;
}
}
else
{
echo "<p>Во время выполнения запроса произошла неизвестная ошибка.</p>";
}
Вот он и виснет. А если я уберу 1 цикл то работает:
<?php
header("Cache-Control: no-cache, must-revalidate");
header("Cache-Control: post-check=0,pre-check=0", false);
header("Cache-Control: max-age=0", false);
header("Pragma: no-cache");
require './../data/db.php';
$id_option = $_POST['id_option'];
$update_poll = mysql_query("UPDATE `poll_option` SET `number_of_poll`=(`number_of_poll`+1) WHERE `id`='".$id_option."'") or die(mysql_error());
if($update_poll === true)
{
$select_poll = mysql_query("SELECT `name`,`number_of_poll` as `num` FROM `poll_option` WHERE `id_poll`='21'") or die(mysql_error());
$i = 1;
$poll_num = 0;
while($poll = mysql_fetch_assoc($select_poll))
{
$percent = $poll['num'] * 100;
$option_percent = $percent / $poll_num;
$option_percent = floor($option_percent);
if($option_percent > 100)
{
$option_percent = round($option_percent, -2);
while($option_percent > 100)
{
$option_percent = $option_percent - 100;
}
}
$img = "template/DE_images/poll" . $i . ".gif";
echo "<div style='background: url(".$img."); width: ".$option_percent."px; height: 10px;'></div> - " . $poll['num'] . "(" . $option_percent . "%)<br>";
$i++;
}
}
else
{
echo "<p>Во время выполнения запроса произошла неизвестная ошибка.</p>";
}
Как мне решить эту проблему.
[/php]
Спустя 21 минута, 15 секунд (13.07.2012 - 18:34) DySprozin написал(а):
while($polle = mysql_num_rows($select_poll))
{
$poll_num = $poll_num + $polle['num'];
}
а в чем смысл этого цикла? ты говоришь скрипту: верни число ячеек и повторяй так до тех пор, пока число ячеек существует.
Скрипт берет для таблицы $select_poll число ячеек. Скажем, 10. Получаем бесконечный цикл:
while($polle = 10)
{
$poll_num = $poll_num + $polle['num'];
}
Цитата |
$polle['num']; |
и причем тут массив? mysql_num_rows() возвращает _целое число_
Спустя 12 минут, 17 секунд (13.07.2012 - 18:46) Shkiper написал(а):
DySprozin извини описался не mysql_num_rows a mysql_fetch_assoc. Мне нужно чтоб скрипт сосчитал все в столбце num и все это занес в $poll_num
Спустя 17 минут, 55 секунд (13.07.2012 - 19:04) DySprozin написал(а):
не понял... еще раз приведи неработающий код, но без описок (;
Спустя 1 час, 34 минуты, 35 секунд (13.07.2012 - 20:38) Shkiper написал(а):
<?php
header("Cache-Control: no-cache, must-revalidate");
header("Cache-Control: post-check=0,pre-check=0", false);
header("Cache-Control: max-age=0", false);
header("Pragma: no-cache");
require './../data/db.php';
$id_option = $_POST['id_option'];
$update_poll = mysql_query("UPDATE `poll_option` SET `number_of_poll`=(`number_of_poll`+1) WHERE `id`='".$id_option."'") or die(mysql_error());
if($update_poll === true)
{
$select_poll = mysql_query("SELECT `name`,`number_of_poll` as `num` FROM `poll_option` WHERE `id_poll`='21'") or die(mysql_error());
$i = 1;
$poll_num = 0;
while($polle = mysql_fetch_assoc($select_poll))
{
$poll_num = $poll_num + $polle['num'];
}
while($poll = mysql_fetch_assoc($select_poll))
{
$percent = $poll['num'] * 100;
$option_percent = $percent / $poll_num;
$option_percent = floor($option_percent);
if($option_percent > 100)
{
$option_percent = round($option_percent, -2);
while($option_percent > 100)
{
$option_percent = $option_percent - 100;
}
}
$img = "template/DE_images/poll" . $i . ".gif";
echo "<div style='background: url(".$img."); width: ".$option_percent."px; height: 10px;'></div> - " . $poll['num'] . "(" . $option_percent . "%)<br>";
$i++;
}
}
else
{
echo "<p>Во время выполнения запроса произошла неизвестная ошибка.</p>";
}
Спустя 12 часов, 17 минут, 42 секунды (14.07.2012 - 08:56) DySprozin написал(а):
Цитата |
while($polle = mysql_fetch_assoc($select_poll)) { $poll_num = $poll_num + $polle['num']; } |
точно в этом цикле трабла? проверь:
$ch = 0;
while($polle = mysql_fetch_assoc($select_poll))
{
if ($ch++ > 10000) exit('ошибка в цикле!');
$poll_num = $poll_num + $polle['num'];
}
Спустя 26 минут, 13 секунд (14.07.2012 - 09:22) Shkiper написал(а):
DySprozin обработчик действует но ответ присылает пустой, то есть вообще ничего не выводит даже ошибки интерпретатора.
Спустя 12 часов, 27 минут, 17 секунд (14.07.2012 - 21:50) DySprozin написал(а):
Shkiper
в таком случае, в начало файла:
в таком случае, в начало файла:
ini_set('display_errors', 1);
error_reporting(E_ALL);
Спустя 4 минуты, 35 секунд (14.07.2012 - 21:54) Shkiper написал(а):
DySprozin опять ничего не выдает. Пустота
Спустя 5 минут, 44 секунды (14.07.2012 - 22:00) DySprozin написал(а):
>Пустота
уху, посмотрел... а что ты хотел?
while($poll = mysql_fetch_assoc($select_poll)) - этот цикл у тебя никогда не запустится, ты уже промотал mysql_fetch_assoc($select_poll) в цикле выше. как вариант, запиши $polle['num'] в массив, а потом юзай вместо второго цикла foreach
уху, посмотрел... а что ты хотел?
while($poll = mysql_fetch_assoc($select_poll)) - этот цикл у тебя никогда не запустится, ты уже промотал mysql_fetch_assoc($select_poll) в цикле выше. как вариант, запиши $polle['num'] в массив, а потом юзай вместо второго цикла foreach
Спустя 18 часов, 17 минут, 12 секунд (15.07.2012 - 16:17) Shkiper написал(а):
DySprozin это мне придеться сначало все это в масси загнать а потом уже все это в переменную прлюсовать - 2 цикла получаеться. Да и как сделать???
Спустя 16 часов, 36 минут, 30 секунд (16.07.2012 - 08:54) Shkiper написал(а):
Help me world peaple.