Трабл с циклами (PHP)

Статус: Offline
Реєстрація: 31.08.2010
Повідом.: 229
Трабл с циклами (PHP)

Помогите плз.. Сделал постраничную нафигацию, на странички бъет, а выдает порнографию из набора записей..
Вотс код странички:
Код:
<?
require '../inc/header.php';
require_once '../config.php';
$num = 9;//storys on a page
$page = $_GET['page'];
$result = mysql_query("SELECT COUNT(*) FROM ithappens");  
$posts = mysql_result($result, 0); 
$total = intval(($posts - 1) / $num) + 1;
$page = intval($page);
if(empty($page) or $page < 0) $page = 1;  
if($page > $total) $page = $total; 
$start = $page * $num - $num;
$result = mysql_query("SELECT * FROM ithappens LIMIT $start, $num");
while ( $postrow[] = mysql_fetch_array($result))
for($i = 0; $i < $num; $i++)  
{  
$text = str_replace("\n","<br/>",$postrow[$i]['data']);
 echo '
	  <div class="lb"> </div>
<div class="text">
    <h3><a href="/story/?story='.$postrow[$i]['id'].'">#'.$postrow[$i]['id'].': '.$postrow[$i]['title'].'</a></h3>
<p class="date">'.$postrow[$i]['stamp'].'<p class="date">рейтинг: 834
<p class="text" id="'.$postrow[$i]['id'].'">'.$text.'</p>
<p class="storytags">'.$postrow[$i]['tags'].'</p><p class="date">
<span id="res7539" style="font-style: italic;"></span></p>
</div>';
 
} 
// Проверяем нужны ли стрелки назад  
if ($page != 1) $pervpage = '<a href= ./?page=1><<</a>  
                               <a href= ./?page='. ($page - 1) .'><</a> ';  
// Проверяем нужны ли стрелки вперед  
if ($page != $total) $nextpage = ' <a href= ./?page='. ($page + 1) .'>></a>  
                                   <a href= ./?page=' .$total. '>>></a>';  

// Находим две ближайшие станицы с обоих краев, если они есть  
if($page - 2 > 0) $page2left = ' <a href= ./?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';  
if($page - 1 > 0) $page1left = '<a href= ./?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';  
if($page + 2 <= $total) $page2right = ' | <a href= ./?page='. ($page + 2) .'>'. ($page + 2) .'</a>';  
if($page + 1 <= $total) $page1right = ' | <a href= ./?page='. ($page + 1) .'>'. ($page + 1) .'</a>'; 

// Вывод меню  
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage; 
require '../inc/footer.php';
?>
А вот скриншот:
new.jpg
 
Може тому, що $postrow[] - одномірний?
 
просто клонировть сайты нехорошо. Судьба снова сверху.
можно я это на говнокод.ру скопириую?

Може тому, що $postrow[] - одномірний?

скорее у него цикл for внутри цикла while выполняется.
что и ожидаемо при таком то шквале маразма.
 
Быдлокод навигации не мой, нагуглил.
 
order by в select напиши.
 
while ( $postrow[] = mysql_fetch_array($result))
for($i = 0; $i < $num; $i++)
Из этих двух что-то одно выбери, да?
ЗЫЖ В приличном языке ты бы уже плакал и за попку держался от вылета за границы массива...
 
; поставьте после while (...) - будет вам счастье
 
Ну от пустых записей помогло ; после while. Убирание одного из циклов убивает весь вывод и вылетает в ошибку. Но теперь на последней странице если там не 9 записей, а 3, то скрипт добавляет в конец 6 пустышек, чтоб 9 было..



Решил выводом через условие.. if ($id != "" or...){echo '...'; }else{echo "";}
 
Останнє редагування:
ааа. Это просто супер!
 
Аплодирую стоя. Автор, а почему у вас сайт не показывается в файрфоксе? HTML-код у меня лиса получает, а вот на экран ничего не отдаёт?
 
Знаю. В опере отображается, почему остальные не видят хз, потом разберусь.
 
ЗЫЖ В приличном языке ты бы уже плакал и за попку держался от вылета за границы массива...

любите, когда компилятор сверху и сзади? ;)
(в ПХП оно ваще то с утра лепило предупреждения при обращении к несуществующим элементам. просто не все их читают)

Аплодирую стоя. Автор, а почему у вас сайт не показывается в файрфоксе? HTML-код у меня лиса получает, а вот на экран ничего не отдаёт?

я же говорю, Судьба...
тут починил, там отломалось.
 
(в ПХП оно ваще то с утра лепило предупреждения при обращении к несуществующим элементам. просто не все их читают)
Это утро наступит только тогда, когда в пхп.ини в одном-двух-трех местах поковыряешься.
 
я даже не знаю, где оно у Zend Server CE находится.
что я делаю не так?
взял свежий пхп, в конфигах по дефолту отображать все
что я делаю не так?

Ключевое слово "взял". Подставить сюда "получил хуй знает от кого" и повторить эксперимент.
Как можно видеть на скриншоте пациента - ничего не отображается при гарантированном доступе к несуществующим элементам массива.
 
Ключевое слово "взял". Подставить сюда "получил хуй знает от кого" и повторить эксперимент.
Как можно видеть на скриншоте пациента - ничего не отображается при гарантированном доступе к несуществующим элементам массива.

ну вот, когда ПХП лепит ошибки прямо в HTML - его за это ругают.
когда прячет их в журнал - снова ругают)))

то шо ТСЕ не удосужился обеспечить себе тестовый сервер или ему Жопов насоветовал отключить вывод ошибок "шоб память не жрало" - снова ПХП виновато.
у меня первым делом отладчик начинает орать, независимо от того, включен вывод ошибок или нет.
и вооще-то ничего не мешает настраивать обработку ошибок прямо в коде,
в зависимости от того, тестовая это копия или продукция.
все так и делают. а чего добились вы?
 
ну вот, когда ПХП лепит ошибки прямо в HTML - его за это ругают.
когда прячет их в журнал - снова ругают)))

то шо ТСЕ не удосужился обеспечить себе тестовый сервер или ему Жопов насоветовал отключить вывод ошибок "шоб память не жрало" - снова ПХП виновато.
у меня первым делом отладчик начинает орать, независимо от того, включен вывод ошибок или нет.
и вооще-то ничего не мешает настраивать обработку ошибок прямо в коде,
в зависимости от того, тестовая это копия или продукция.
все так и делают. а чего добились вы?
Все эти умные слова относятся к ситуации, когда для разработки пациент пользуется развернутым комплексом программного обеспечения с различными свистелками и перделками. Вы этого всерьез ждете от пациента, который "нагуглил код"?

Как делаю я? Ну для начала я не связываюсь с ПХП :) Мне это не интересно, у меня есть гораздо более мощные, удобные и красивые инструменты для решения задач для миддлваре, как для поделок так и для энтерпрайза, где-то штуки 4 на любой вкус. Шаблонизатор, возомнивший себя языком программирования - все равно в душе ядре своем останется шаблонизатором :)
 
Код:
<?
require '../inc/header.php';
require_once '../config.php';
$num = 9;//storys on a page
$page = $_GET['page'];
$result = mysql_query("SELECT COUNT(*) FROM ithappens");  
$posts = mysql_result($result, 0); 
$total = intval(($posts - 1) / $num) + 1;
$page = intval($page);
if(empty($page) or $page < 0) $page = 1;  
if($page > $total) $page = $total; 
$start = $page * $num - $num;
$result = mysql_query("SELECT * FROM ithappens LIMIT $start, $num");
while ( $postrow[] = mysql_fetch_array($result))
for($i = 0; $i < $num; $i++)  
{  
$text = str_replace("\n","<br/>",$postrow[$i]['data']);
 echo '
	  <div class="lb"> </div>
<div class="text">
    <h3><a href="/story/?story='.$postrow[$i]['id'].'">#'.$postrow[$i]['id'].': '.$postrow[$i]['title'].'</a></h3>
<p class="date">'.$postrow[$i]['stamp'].'<p class="date">рейтинг: 834
<p class="text" id="'.$postrow[$i]['id'].'">'.$text.'</p>
<p class="storytags">'.$postrow[$i]['tags'].'</p><p class="date">
<span id="res7539" style="font-style: italic;"></span></p>
</div>';
 
} 
// Проверяем нужны ли стрелки назад  
if ($page != 1) $pervpage = '<a href= ./?page=1><<</a>  
                               <a href= ./?page='. ($page - 1) .'><</a> ';  
// Проверяем нужны ли стрелки вперед  
if ($page != $total) $nextpage = ' <a href= ./?page='. ($page + 1) .'>></a>  
                                   <a href= ./?page=' .$total. '>>></a>';  

// Находим две ближайшие станицы с обоих краев, если они есть  
if($page - 2 > 0) $page2left = ' <a href= ./?page='. ($page - 2) .'>'. ($page - 2) .'</a> | ';  
if($page - 1 > 0) $page1left = '<a href= ./?page='. ($page - 1) .'>'. ($page - 1) .'</a> | ';  
if($page + 2 <= $total) $page2right = ' | <a href= ./?page='. ($page + 2) .'>'. ($page + 2) .'</a>';  
if($page + 1 <= $total) $page1right = ' | <a href= ./?page='. ($page + 1) .'>'. ($page + 1) .'</a>'; 

// Вывод меню  
echo $pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage; 
require '../inc/footer.php';
?>

вот это трэш :eek:
 
Все эти умные слова относятся к ситуации, когда для разработки пациент пользуется развернутым комплексом программного обеспечения с различными свистелками и перделками. Вы этого всерьез ждете от пациента, который "нагуглил код"?

Как делаю я? Ну для начала я не связываюсь с ПХП :) Мне это не интересно, у меня есть гораздо более мощные, удобные и красивые инструменты для решения задач для миддлваре, как для поделок так и для энтерпрайза, где-то штуки 4 на любой вкус. Шаблонизатор, возомнивший себя языком программирования - все равно в душе ядре своем останется шаблонизатором :)

У нас есть ТАКИЕ приборы! Но мы вам о них не расскажем.
(ц)



ты случаем не клон айленда?

стыдно не знать великого борцуна с ветряны юникодом!
он помогает детям-сиротам стать парази и зарплата выше средней по акапулько.
поэтому UTF-8 гавно, CP 1251 - решает. главное не человек, а исконно правильный язык программирования.

на колени, холоп, и кричи "простите, барин, не признали!"
 
Останнє редагування:
Назад
Зверху Знизу