Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как изменить код , чтоб отображалась 100 последних объявлений ?
 
 автор: ammiid99   (14.02.2010 в 15:36)   письмо автору
 
 

Доброго времени. Пожалуйста подскажите, как быть ?
Скачал как-то скрипт бесплатной доски обьявлений. Там в админке есть функция
отображения последних 10и обьявлений. Хочу чтоб отображалась 100 (так проще администрировать) что- то не найду как изметь код.

Вот функция отвечающая за вывод 10-ки. :


// Выводим 10-20 последних объявлений
$shapka20="<TABLE align=center border=1 bordercolor='#E1E1E1' cellPadding=3 cellSpacing=0 width=100%>";
if (is_file("$datadir/newmsg.dat")) { // проверяем есть ли такой файл
$linesn = file("$datadir/newmsg.dat"); $in=count($linesn);
if ($in > 0) {
$newdat=file("$datadir/newmsg.dat");
$in=count($newdat)-1; $iall=$in; $ia=$in+1;
print"<TABLE cellPadding=2 cellSpacing=1 align=center width='98%'>
<TR bgColor=#cccccc height=18><TD colspan=4 align=center><B>Последние $ia объявлений:</B></TD></TR>
<TR><TD valign=top> $shapka20";

do {$dtn=explode("|", $newdat[$in]);
$url="index.php?fid=$dtn[8]&id=$dtn[10]";

$dtn[5]=substr($dtn[5],0,150); // образаем сообщение до 150 символов
$dtn[5]=str_replace("<br>","\r\n",$dtn[5]);
$dtn[7]=date("H:i",$dtn[7]);
if ($dtn[4]=="П") {$colorsp="#ff3333";} else {$colorsp="#1414CD";}
if (round($iall/2)==($in+1)) {print"</table></td><td valign=top width=50%>$shapka20";}
if ($dtn[9]=="vip") {$st1="<B>"; $st2="VIP-объявление \r\n";} else {$st1=""; $st2="";}
print"
<TR height=20>
<td width=5% bgcolor=#FF6C6C><B><a href='admin.php?tenxd=$in'>.X.</a></B></td>
<TD><FONT color=$colorsp><B>$dtn[4]</B></FONT></TD>
<TD>$dtn[7]</TD>
<TD width=100%>$st1<A href='$url' title='$dtn[5] \r\r\n $st2 размещено $dtn[6] г.'>$dtn[3]</A></TD>
</TR>";
$in--;
} while($in >"-1");
print"</table></td></tr></table>";
}
}
print"<div align=left>&nbsp; Операции для рубрик: <BR>
&nbsp; <B>Вв.</B> - переместить <B>ВВЕРХ</B>;<BR>
&nbsp; <B>Нз.</B> - переместить <B>ВНИЗ</B>;<BR>
&nbsp; <B>.Р.</B> - <B>РЕДАКТИРОВАТЬ</B>;<BR>
&nbsp; <B>.Х.</B> - <B>УДАЛИТЬ</B>.<BR><BR>
</td></tr></table>"; }
} // if !isset($event')

  Ответить  
 
 автор: Trianon   (14.02.2010 в 15:57)   письмо автору
 
   для: ammiid99   (14.02.2010 в 15:36)
 

выкинуть.

  Ответить  
 
 автор: sasha1133   (27.02.2010 в 12:17)   письмо автору
 
   для: ammiid99   (14.02.2010 в 15:36)
 

Код реально ужасен. Можно было сделать намного проще. На мой взгляд пользоваться функциями <print>, <echo> для вывода большого количества HTML делает код очень не универсальным и не читабельным. Лучше делать небольшие вставки PHP-кода. К примеру лучше выглядит

<table>

<?php
while(){
?>

<tr><td><?=$somevalue; ?></td></tr>

<?php
}
?>

</table>

А в Вашем коде я что то ничего не понял. Намного проще сделать с помощью базы данных, т.к. есть много удобных функций выборки, например SELECT .. .. ORDER BY 'date' DESC LIMIT 100. По идее должно выбрать 100 последних объявлений. (PS запрос вероятно неправильно записал, но суть такая)

  Ответить  
 
 автор: sl1p   (27.02.2010 в 13:19)   письмо автору
 
   для: sasha1133   (27.02.2010 в 12:17)
 

какая разница между print и echo?

  Ответить  
 
 автор: sasha1133   (28.02.2010 в 02:23)   письмо автору
 
   для: sl1p   (27.02.2010 в 13:19)
 

не знаю, пользуюсь echo

  Ответить  
 
 автор: sl1p   (28.02.2010 в 02:45)   письмо автору
 
   для: sasha1133   (28.02.2010 в 02:23)
 

а я наверное неправильно понял ваш пост)
мне показалось что вы предлагаете юзать print вместо echo

  Ответить  
 
 автор: sasha1133   (28.02.2010 в 12:21)   письмо автору
 
   для: sl1p   (28.02.2010 в 02:45)
 

Различие нашёл тут, если интересно http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40

Я имел ввиду при написании кода стараться оставить как можно более простую и понятную структуру HTML, т.е. не выводить большое количество HTML с помощью echo или print. Потому что бывает трудно понять, как будет выглядеть документ, труднее верстать и тп.

  Ответить  
 
 автор: sl1p   (28.02.2010 в 13:08)   письмо автору
 
   для: sasha1133   (28.02.2010 в 12:21)
 

echo <<<TEXT
много кода
TEXT:

и всё ок :)

  Ответить  
 
 автор: Лена   (28.02.2010 в 13:59)   письмо автору
 
   для: sl1p   (28.02.2010 в 13:08)
 

Heredoc-текст заканчивается на ;
TEXT;

  Ответить  
 
 автор: sl1p   (28.02.2010 в 14:37)   письмо автору
 
   для: Лена   (28.02.2010 в 13:59)
 

промазал по кнопке)

  Ответить  
 
 автор: sasha1133   (03.03.2010 в 15:03)   письмо автору
 
   для: sl1p   (28.02.2010 в 14:37)
 

а HEREDOC - синтаксис подставляет значения переменных в текст?

  Ответить  
 
 автор: Тень&   (03.03.2010 в 18:35)   письмо автору
 
   для: sasha1133   (03.03.2010 в 15:03)
 

http://ru2.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc
Heredoc text behaves just like a double-quoted string, without the double quotes


http://ru2.php.net/manual/en/language.types.string.php#language.types.string.syntax.nowdoc
Nowdocs are to single-quoted strings what heredocs are to double-quoted strings.

  Ответить  
 
 автор: sasha1133   (07.03.2010 в 23:28)   письмо автору
 
   для: Тень&   (03.03.2010 в 18:35)
 

Поясни, что то не понял

  Ответить  
 
 автор: Zefo   (03.04.2010 в 18:25)   письмо автору
 
   для: sasha1133   (28.02.2010 в 02:23)
 

echo проще и соответственно быстрее обрабатывется.

  Ответить  
 
 автор: neadekvat   (03.04.2010 в 18:35)   письмо автору
 
   для: Zefo   (03.04.2010 в 18:25)
 

Я не представляю, сколько echo надо использовать в коде, чтобы почувствовать хоть какой-то прирост в скорости..
Я лично использую echo по двум причинам
1. Так я в мозгу отличаю другие языки программирования
2. Да тупо удобнее писать echo, а не print

Правда есть случай, когда нужно использовать именно print:
(1 == 1) ? print 1 : print 0;

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования