есть очень простой цикл:
for($i=$first;$i<=$last;$i++)
{
$result = mysql_query("SELECT name FROM intimage WHERE id =$i+1");
$row=mysql_fetch_assoc($result);
echo $row['name'];};
при отладке все ОК, в браузере выводит пустые строки.
Спустя 2 минуты, 57 секунд (7.03.2012 - 15:54) Commander Keen написал(а):
не совсем я понял, для чего цикл for ?
Спустя 1 минута, 30 секунд (7.03.2012 - 15:55) Visman написал(а):
Раз пустые, значит в таблице в поле name в диапазоне id от first+1 до last+1 ни чего нет, либо самих строк нет.
И писать лучше не так
а так
Либо сразу диапазон нормально задавать!
И писать лучше не так
id =$i+1"
а так
id =".($i+1)
Либо сразу диапазон нормально задавать!
Спустя 6 минут, 50 секунд (7.03.2012 - 16:02) Гость_Евгений написал(а):
Попробовал изменить на вариант со скобками id =".($i+1) в отладчике все отлично, в браузере - пустые строки
Спустя 2 минуты, 19 секунд (7.03.2012 - 16:04) Visman написал(а):
Замени
на
И смотри что в строках таблицы интересного происходит.
echo $row['name'];};
на
print_r($row);
}
И смотри что в строках таблицы интересного происходит.
Спустя 13 минут, 9 секунд (7.03.2012 - 16:17) Guest написал(а):
Попробовал сделать аналог в отдельном файле:
<?php
$first=0;
$last=3;
$test[]="/images/interior/dn_block.png";
$test[]="/images/interior/dn_block.png1";
$test[]="/images/interior/dn_block.png2";
$test[]="/images/interior/dn_block.png3";
for($i=$first;$i<=$last;$i++)
{
echo $test[$i];
}
?>
Работает прекрасно. Переношу назад в рабочий файл этот же цикл - вывод пустой. В файле используются внешние скрипты на ява:
<script src='/script/engine/js/jquery.min.js' type='text/javascript'></script>
<script src='/script/engine/js/visuallightbox.js' type='text/javascript'></script>
<script src='/script/engine/js/vlbdata.js' type='text/javascript'></script>
от jquery.com. Их блокировка желаемого результата не дает...
если в рабочем файле указать не echo $test[$i];, а echo $test[1]; - все ОК.
<?php
$first=0;
$last=3;
$test[]="/images/interior/dn_block.png";
$test[]="/images/interior/dn_block.png1";
$test[]="/images/interior/dn_block.png2";
$test[]="/images/interior/dn_block.png3";
for($i=$first;$i<=$last;$i++)
{
echo $test[$i];
}
?>
Работает прекрасно. Переношу назад в рабочий файл этот же цикл - вывод пустой. В файле используются внешние скрипты на ява:
<script src='/script/engine/js/jquery.min.js' type='text/javascript'></script>
<script src='/script/engine/js/visuallightbox.js' type='text/javascript'></script>
<script src='/script/engine/js/vlbdata.js' type='text/javascript'></script>
от jquery.com. Их блокировка желаемого результата не дает...
если в рабочем файле указать не echo $test[$i];, а echo $test[1]; - все ОК.
Спустя 1 минута, 5 секунд (7.03.2012 - 16:18) Guest написал(а):
замена echo на print_r дает аналогичный результат. Пустой вывод.
Спустя 4 минуты, 6 секунд (7.03.2012 - 16:22) Visman написал(а):
Вероятно запросы к базе ни чего не возвращают или возвращают ошибку.
Спустя 2 минуты, 33 секунды (7.03.2012 - 16:25) Visman написал(а):
Добавь вывод ошибок к запросу как тут http://php.su/functions/?cat=mysql в примере сделано.
Спустя 6 минут, 21 секунда (7.03.2012 - 16:31) Гость_Евгений написал(а):
Проверку ошибок добавил, с базой ОК.
Спустя 3 минуты, 32 секунды (7.03.2012 - 16:35) Гость_Евгений написал(а):
Прошу прощения за "вынос мозга", но уже даже не так нужно, как интересно.
Добавил переменные цикла в явном виде - все работает ОК.
$first=0;
$last=3;
for($i=$first;$i<=$last;$i++)
{
$result = mysql_query("SELECT name FROM intimage WHERE id ="."($i+1)");
$row=mysql_fetch_assoc($result);
print_r($row);
}
Изначальный вариант:
$first=$p*$max-$max; (тип long, значение 0)
$last=($p*$max)-1; (тип long, значение 3)
Может $p - это какая нибудь константа языка?
Добавил переменные цикла в явном виде - все работает ОК.
$first=0;
$last=3;
for($i=$first;$i<=$last;$i++)
{
$result = mysql_query("SELECT name FROM intimage WHERE id ="."($i+1)");
$row=mysql_fetch_assoc($result);
print_r($row);
}
Изначальный вариант:
$first=$p*$max-$max; (тип long, значение 0)
$last=($p*$max)-1; (тип long, значение 3)
Может $p - это какая нибудь константа языка?
Спустя 5 минут, 50 секунд (7.03.2012 - 16:41) Visman написал(а):
Цитата (Гость_Евгений @ 7.03.2012 - 21:35) |
"($i+1)" |
Я разве это писал?
А в явном виде это значит задавать цикл не от 0 до 3, а потом смещать значение на единицу, а от 1 до 4 и ни чего не смещать в запросе.
Спустя 17 минут, 26 секунд (7.03.2012 - 16:58) Guest написал(а):
разобрался ... дурацкая ситуация.
переменная $p передается через методом get и заменяется ява скриптом счетчика. При этом выражение $last=($p*$max)-1; становиться отрицательным.
Это происходит исключительно в браузере т.к. отладчик не отрабатывает яву.
Изменил $p на $page и все прекрасно заработало.
Спасибо большое за помощь и ответы.
переменная $p передается через методом get и заменяется ява скриптом счетчика. При этом выражение $last=($p*$max)-1; становиться отрицательным.
Это происходит исключительно в браузере т.к. отладчик не отрабатывает яву.
Изменил $p на $page и все прекрасно заработало.
Спасибо большое за помощь и ответы.