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

Форум PHP

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

 

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

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

тема: Постраничный вывод softtime
 
 автор: kis-kis   (27.10.2007 в 17:42)   письмо автору
 
 

Воспользовался вашим скриптом постраничного вывода, но возникли некоторые проблемы с ним:

1. Допустим выводим по 10 значений на страницу. Всего значений 58 - получается будет 6 страниц, но на последней странице выводится все равно 10 значений, вместо оставшихся 8. Как можно это исправить?

2.
  
echo "<table>";  
for($i = 0; $i < $num; $i++)  
{  
 echo "<tr> 
         <td>".$postrow[$i]['name']."</td> 
         <td>".$postrow[$i]['time']."</td></tr> 
       <tr><td colspan=\"2\">".$postrow[$i]['text']."</td></tr>";  
}  
echo "</table>";  


Почему если убрать это echo "<table>"; и это echo "</table>"; то скрипт перестает нормально работать? Спасибо.

   
 
 автор: sim5   (27.10.2007 в 17:53)   письмо автору
 
   для: kis-kis   (27.10.2007 в 17:42)
 

Потому, что <table> и </table> это теги - открывающий и закрывающий таблицу.

   
 
 автор: kis-kis   (27.10.2007 в 17:57)   письмо автору
 
   для: sim5   (27.10.2007 в 17:53)
 

-

   
 
 автор: sim5   (27.10.2007 в 18:01)   письмо автору
 
   для: kis-kis   (27.10.2007 в 17:57)
 

Ну если убрать все теги таблицы, то ваши данные "склеются" и если это ссылки, то...
Делайте на div, какая проблема.

   
 
 автор: kis-kis   (27.10.2007 в 18:37)   письмо автору
 
   для: sim5   (27.10.2007 в 18:01)
 

В принципе использование <div> или <table> не существенно. А вы пробовали сохранить страничку из браузера после постраничного вывода? Все теги оказываются вложенными друг в друга, а это не есть хорошо... ((

Примерно так -


<div><div><div><div><div><div><div><div><div><div>
....
</div></div></div></div></div></div></div></div></div>


А должно быть так

<div>
...
</div>
...
...
...


Разве я не прав?

   
 
 автор: sim5   (27.10.2007 в 18:44)   письмо автору
 
   для: kis-kis   (27.10.2007 в 18:37)
 

Не правы. Вы можете вообще склеить все теги в одну строку, браузеру это по барабану. Главное чтобы не склеить атрибуты элементов, JS код на странице, и пр..

   
 
 автор: kis-kis   (27.10.2007 в 18:48)   письмо автору
 
   для: sim5   (27.10.2007 в 18:44)
 

Тогда судя вашим словам даже если теги и в строчку то вывод должен выглядеть так - <div>контент</div><div>контент</div><div>контент</div><div>контент</div> ..., а данный скрипт выводит так - <div><div><div><div><div><div><div><div><div><div>контент</div></div></div></div></div></div></div></div></div> - Это не правильно.

Хорошо, а как тогда вывести в таком виде:

<div>
контент
</div>

...

<div>
контент
</div>

   
 
 автор: sim5   (27.10.2007 в 18:50)   письмо автору
 
   для: kis-kis   (27.10.2007 в 18:48)
 

Для этого существуют стили - CSS.

   
 
 автор: kis-kis   (27.10.2007 в 19:06)   письмо автору
 
   для: sim5   (27.10.2007 в 18:50)
 

Либо ВЫ меня не понимаете, либо Я вас.

Вот смотрите тег <div> {background-color: #666666; border: 1px solid #000000; padding: 15px;}

Если бы вывод был как я говорю, то выводились бы блоки в столбик, а т.к. теги вложены друг в друга, то выводится блок, внутри еще блок, еще, еще ....

   
 
 автор: sim5   (27.10.2007 в 19:16)   письмо автору
 
   для: kis-kis   (27.10.2007 в 19:06)
 

Я понятия не имею что выводит у вас ваш цикл, что я вам могу сказать? Местоположение дивов можно прописать через стили.


<?
for($i 0$i $num$i++)   
{   
 echo 
"<div><span class=left>".$postrow[$i]['name']."</span>
   <span class=right>"
.$postrow[$i]['time']."</span></div>  
  <div>"
.$postrow[$i]['text']."</div>";   
}


Задавайте в цикле структуру своих вложений, таблиц и прочего.

   
 
 автор: kis-kis   (29.10.2007 в 11:19)   письмо автору
 
   для: sim5   (27.10.2007 в 19:16)
 

Какая разница что он выводит у меня, вот Вам вывод с softtime:


echo "<table>";   
for($i = 0; $i < $num; $i++)   
{   
 echo "<tr>  
         <td>".$postrow[$i]['name']."</td>  
         <td>".$postrow[$i]['time']."</td></tr>  
       <tr><td colspan=\"2\">".$postrow[$i]['text']."</td></tr>";   
}   
echo "</table>";  


Если убрать вот это - echo "<table>"; и это echo "</table>"; или перенести их сюда


for($i = 0; $i < $num; $i++)   
{   
 echo "<table><tr>  
         <td>".$postrow[$i]['name']."</td>  
         <td>".$postrow[$i]['time']."</td></tr>  
       <tr><td colspan=\"2\">".$postrow[$i]['text']."</td></tr></table>";   
}   


То вывод вообще себя ведет очень странно... ((

Вы сами попробуйте ))

   
 
 автор: sim5   (29.10.2007 в 12:09)   письмо автору
 
   для: kis-kis   (29.10.2007 в 11:19)
 

Просто теги <TABLE> и </TABLE> нужно вынести за цикл, а как вы сформируете саму таблицу (или иные элементы), зависит от цикла:


<?
$postrow 
= array(array('name'=>'main1','time'=>12,'text'=>'text1'),array('name'=>'main2','time'=>22,'text'=>'text2'));
//можно так
$tbl "<table border=1>";
for(
$i=0$i<count($postrow); $i++)
{    
 
$tbl .= "<tr>
         <td>"
.$postrow[$i]['name']."</td>   
         <td>"
.$postrow[$i]['time']."</td></tr>   
       <tr><td colspan=\"2\">"
.$postrow[$i]['text']."</td></tr>";    
}
$tbl .= "</table><br>";
echo 
$tbl;
//можно так
$tbl "<table border=1>";
for(
$i=0$i<count($postrow); $i++)
{    
 
$tbl .= "<tr>   
         <td>"
.$postrow[$i]['name']."</td>   
         <td>"
.$postrow[$i]['time']."</td>   
         <td>"
.$postrow[$i]['text']."</td></tr>";    
}
$tbl .= "</table>";
echo 
$tbl;
//как вам нужно
?>

   
 
 автор: buro   (27.10.2007 в 17:54)   письмо автору
 
   для: kis-kis   (27.10.2007 в 17:42)
 

я справился с это проблемой путём проверки данных пока помогает.
может можно и по другому...
пока мне так нравится

echo "<table>";
for($i = 0; $i < $num; $i++)
{
if !empty($postrow[$i]['name'])
{
echo "<tr>
<td>".$postrow[$i]['name']."</td>
<td>".$postrow[$i]['time']."</td></tr>
<tr><td colspan=\"2\">".$postrow[$i]['text']."</td></tr>";
}
}
echo "</table>";

   
 
 автор: kis-kis   (27.10.2007 в 17:59)   письмо автору
 
   для: buro   (27.10.2007 в 17:54)
 

-

   
Rambler's Top100
вверх

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