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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Вывод данных в таблицу

Сообщения:  [1-6] 

 
 автор: x64   (08.08.2009 в 07:41)   письмо автору
 
   для: sim5   (08.08.2009 в 04:11)
 

сколько выдержки, браво! я бы так смог!
зы: автор, если нум должен быть фиксированным, то при 25 записях в таблице всегда и последней странице всегда 5 последних записей будут выводить с 5 пустыми ячейками. арифметика, первый класс, блин...

  Ответить  
 
 автор: sim5   (08.08.2009 в 04:11)   письмо автору
 
   для: Xolod   (08.08.2009 в 01:54)
 

Ну боже мой, вы $num не только можете фиксированным сделать, вы его хоть гвоздем прибейте ) Этот параметр у вас определяет количество выводимых строк, ячеек и т.п., то есть, это мера. Но, блоку, циклу, который выводит эти самые данные, нужно отдавать не этот параметр, а расчитанный по условию - если количество следующих выводимых данных, превышает $num, то выводим количество равное $num, если же нет, то выводим не количество равное $num, а количество равное остатку.
Вы же гоните на страницу по жестко заданному размеру, от сюда у вас и проблемы. Так не делается.

  Ответить  
 
 автор: tvv123456   (08.08.2009 в 02:23)   письмо автору
 
   для: Xolod   (08.08.2009 в 01:54)
 

А что если строки таблицы выводить в цикле? То есть заносим первые значения в таблицу дальше проверяем есть ли еще записи в базе, если есть создаем еще одну строку таблицы.
Вот приметивный код который должен внести небольшую ясность в мои слова:

<table>
<tr>
 тут ячейки с постоянной информацией(шапка таблицы)
</tr>
<?
$result 
mysql_query("select *  .....")// короче тут запрос к базе и вытаскивание нужного контента, ЭТО именно тот запрос с которым вы дальше работаете, а не подсчет числа записей в таблице!!!
$myrow=mysql_fetch_array($result)// заносим первую строку в массив

//и дальше собственно цикл
do
{
echo 
"
<tr>
<td>"
.$myrow['chtoto']."</td>
................... 
</tr>


"
;
}
while(
$myrow=mysql_fetch_array($result))
// В общем думаю все понятно: цикл создает строчку если в базе есть еще запись и не получается пустых ячеек и все отлично работает

?>
</table>


P.S. Здесь указана только идея а не готовый скрипт!!! Так что прошу без критики

_________________________
Вам помогут модифицировать скрипт здесь: http://www.phpsite.z4.ru/zakaz.php

  Ответить  
 
 автор: Xolod   (08.08.2009 в 01:54)   письмо автору
 
   для: sim5   (07.08.2009 в 18:22)
 

$num и должно быть фиксированым. Мне нужно чтобы по 10 записей выводилось на страницу, а не зависящим от количества записей в таблице. А вот проверку на существование данных в масиве я что то не соображу как.

  Ответить  
 
 автор: sim5   (07.08.2009 в 18:22)   письмо автору
 
   для: Xolod   (07.08.2009 в 16:32)
 

Чтобы "рисовалась" правильно, нужно правильно определять $num, а это значение у вас фиксировано, и всегда равен 10. Либо проверять и выводить ячейки только тогда, когда существуют в массиве значения.

  Ответить  
 
 автор: Xolod   (07.08.2009 в 16:32)   письмо автору
 
 

Здравствуйте!

Есть скрипт который выводит данные из таблицы в mysql на страницу и рисует таблицу с постраничной навигацией.

<style type="text/css">
TABLE {
border: 4px double #fc0; /* Параметры двойной рамки */
width: 80%; /* Ширина таблицы */ 
}
TD {
padding: 5px; /* Поля в ячейках */
background: #f0f0f0; /* Цвет фона в ячейке */ 
}
</style>
<center>
<?php
//Соединение с базой данных  
require_once("config.php");
// Переменная хранит число сообщений выводимых на станице   
$num 10;   
// Извлекаем из URL текущую страницу   
$page $_GET['page'];   
// Определяем общее число сообщений в базе данных   
$result mysql_query("SELECT COUNT(*) FROM fspt");   
$posts mysql_fetch_row($result);   
// Находим общее число страниц   
$total intval(($posts[0] - 1) / $num) + 1;
// Определяем начало сообщений для текущей страницы   
$page intval($page);   
// Если значение $page меньше единицы или отрицательно   
// переходим на первую страницу   
// А если слишком большое, то переходим на последнюю   
if(empty($page) or $page 0$page 1;   
 if(
$page $total$page $total;   
// Вычисляем начиная к какого номера   
// следует выводить сообщения   
$start $page $num $num;   
// Выбираем $num сообщений начиная с номера $start   
$result mysql_query("SELECT * FROM fspt LIMIT $start$num");   
// В цикле переносим результаты запроса в массив $postrow 
while ( $postrow[] = mysql_fetch_array($result))  
echo 
"<table>";   
echo 
"<tr><th>Имя</th><th>Дата регистрации</th><th>Дислокация</th><th>Кта</th><th>Копка</th><th>Дред</th><th>Кариер</th><th>Должность</th><th>Информация</th><th>Прочее</th></tr>";   
      
for(
$i 0$i $num$i++)   

 echo 
"<tr>";  
 echo 
"  
         <td>"
.$postrow[$i]['nick']."</td>
         <td>"
.$postrow[$i]['date']."</td>    
       <td>"
.$postrow[$i]['system']."</td> 
       <td>"
.$postrow[$i]['kta']."</td>
       <td>"
.$postrow[$i]['mining']."</td> 
       <td>"
.$postrow[$i]['dred']."</td>  
       <td>"
.$postrow[$i]['capital']."</td>
       <td>"
.$postrow[$i]['dolzhnost']."</td> 
       <td>"
.$postrow[$i]['info']."</td> 
       <td>"
.$postrow[$i]['old']."</td>"
 echo 
" </tr>";  
}

echo 
"</table>";   

// Проверяем нужны ли стрелки назад   
if ($page != 1$pervpage '<a href=view.php?page=1><<</a>   
                               <a href=view.php?page='
. ($page 1) .'><</a> ';   
// Проверяем нужны ли стрелки вперед   
if ($page != $total$nextpage ' <a href=view.php?page='. ($page 1) .'>></a>   
                                   <a href=view.php?page=' 
.$total'>>></a>';   

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

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

?> 


Предположим в базе 25 записей
количество выводимых записей на страницу 10
Скрипт правильно расчитывает коичество страниц 3
Но на последней странице он выведет 5 записей и 5 пустых ячеек таблицы
Что можно сделать, чтобы рисовалась табличка только на те 5 записей что должны быть на последней странице?

  Ответить  

Сообщения:  [1-6] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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