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

Форум PHP

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

 

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

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

тема: Коменты в два столба
 
 автор: zorg84   (17.07.2011 в 11:12)   письмо автору
 
 

Суть вопроса: есть комментарии в два ряда, одни для женщин другие для мужчин и к ним две таблицы в базе MySQL. Всё бы хорошо но мне надо чтобы была постраничная навигация. Допустим чтобы было по десять комментариев на странице в каждом столбце.
Я сделал навигацию но получается только к одной таблице пробовал подсчитать общее количество записей в двух таблицах, но получается что работает не корректно. Если в таблице где есть навигация записей только 5 а в другой 25 та увидеть можно только 5 записей .
Другой вариант с общим подсчетом записей выводит другую страницу после: допустим в таблице ж 3 записи а в таблице м 2 в совокупности выходит 5 записей.Вопрос как сделать обычную навигацию чтобы выводилось 5 и 5 если больше хотя бы в одном столбце выводилась ссылка на другую страницу.
Надеюсь понятно объяснил заранее спасибо.
 
CREATE TABLE `comments` (
  `id` int(5) NOT NULL auto_increment,
  `post` varchar(5) NOT NULL,
  `author` varchar(100) NOT NULL,
  `text` text NOT NULL,
  `date` date NOT NULL,
  `email` varchar(250) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=71 ;


        <?PHP 
echo "<p>Кометарии<p>";
 
$result77 mysql_query("SELECT str FROM options"$db);
$myrow77 mysql_fetch_array($result77);
$num $myrow77["str"];
// Извлекаем из URL текущую страницу
@$page $_GET['page'];
// Определяем общее число сообщений в базе данных
$result01 mysql_query("SELECT COUNT(c.*) AS count_c, COUNT(cs.*) AS count_cs FROM comments AS c LEFT JOIN  commentsss AS cs USING (post) WHERE post='$id'");
echo 
mysql_error();
$temp mysql_fetch_array($result01);
$posts $temp[0];
// Находим общее число страниц
$total = (($posts 1) / $num) + 1;
$total =  intval($total);
// Определяем начало сообщений для текущей страницы
$page intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page 0$page 1;
  if(
$page $total$page $total;
// Вычисляем начиная с какого номера
// следует выводить сообщения
$start $page $num $num;
// Выбираем $num сообщений начиная с номера $start
 
$result0 mysql_query ("SELECT * FROM comments WHERE post='$id' ORDER BY id  DESC, id DESC LIMIT $start$num",$db);
if (
mysql_num_rows($result0) > 0)
{
$myrow0 mysql_fetch_array($result0);
do 
{
@
printf ("<div class='post_div'><p class='post_comment_add'>Комментарий добавила: <strong>%s</strong> <br> Дата: <strong>%s</strong></p>
<p>%s</p></div>"
,$myrow0["author"], $myrow0["date"], $myrow0["text"]);
}
while (
$myrow0 mysql_fetch_array($result0));
 
 
 
 
 
 
// Проверяем нужны ли стрелки назад   <a href=post.php?cat='.$cat.'&page='. ($page - 1) .'>Предыдущая</a>  ';
if ($page != 0$pervpage '<a href=post.php?post='.$cat.'&page=1><</a>  ';
// Проверяем нужны ли стрелки вперед   <a href=post.php?cat='.$cat.'&page=' .$total. '>Последняя</a>';
if ($page != $total$nextpage '  <a href=post.php?post='.$cat.'&page='. ($page 1) .'>></a> ';
 
// Находим две ближайшие станицы с обоих краев, если они есть
if($page 0$page5left ' <a href=post.php?post='.$cat.'&page='. ($page 5) .'>'. ($page 5) .'</a>  ';
if(
$page 0$page4left ' <a href=post.php?post='.$cat.'&page='. ($page 4) .'>'. ($page 4) .'</a>  ';
if(
$page 0$page3left ' <a href=post.php?post='.$cat.'&page='. ($page 3) .'>'. ($page 3) .'</a>  ';
if(
$page 0$page2left ' <a href=post.php?post='.$cat.'&page='. ($page 2) .'>'. ($page 2) .'</a>  ';
if(
$page 0$page1left '<a href=post.php?post='.$cat.'&page='. ($page 1) .'>'. ($page 1) .'</a>  ';
 
if(
$page <= $total$page5right '  <a href=post.php?post='.$cat.'&page='. ($page 5) .'>'. ($page 5) .'</a>';
if(
$page <= $total$page4right '  <a href=post.php?post='.$cat.'&page='. ($page 4) .'>'. ($page 4) .'</a>';
if(
$page <= $total$page3right '  <a href=post.php?post='.$cat.'&page='. ($page 3) .'>'. ($page 3) .'</a>';
if(
$page <= $total$page2right '  <a href=post.php?post='.$cat.'&page='. ($page 2) .'>'. ($page 2) .'</a>';
if(
$page <= $total$page1right '  <a href=post.php?post='.$cat.'&page='. ($page 1) .'>'. ($page 1) .'</a>';
 
// Вывод меню если страниц больше одной
 
if ($total 1)
{
Error_Reporting(E_ALL & ~E_NOTICE);
echo 
"<div class=\"pstrnav\">";
echo 
$pervpage.$page5left.$page4left.$page3left.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$page3right.$page4right.$page5right.$nextpage;
echo 
"</div>";
}
 
 
}
 
?>

  Ответить  
 
 автор: moonfox   (18.07.2011 в 00:37)   письмо автору
 
   для: zorg84   (17.07.2011 в 11:12)
 

примерно...

<?
$how 
10;
$db->query('SELECT `id`, `title_'.$lang.'`, `content_'.$lang.'`, `color_first`, `gender`, `groups` FROM `catalog` 
WHERE `shop` = '
.$shop.' AND `active` = 1 ORDER BY `id` DESC LIMIT '.($page $how).', '.$how); 
$a $db->fetch(); // массив данных из нужной таблицы


$db->query('SELECT `id` FROM `catalog` WHERE `shop` = '.$shop.' AND `active` = 1'); // выбор из нужной таблицы количество всех записей
$db->pages($smarty$how$page);


    function 
pages($smarty$how$page)
    {
    
$count mysql_num_rows($this->res);

    
//$this->requests++;
    //$s = array();
    
    
$count $count $how;
    for (
$i 0$i $count$i ++)
      
$s[] = $i;
    
    
$max sizeof($s);

    if(
$page)
      
$one $page 1;
    else
    {
      
$one 0;
      unset(
$_SESSION['min']);
    }
  if(!
$_SESSION['min']) $_SESSION['min'] = 0;
  
  
$step 10 $one;
  if(
$step <= $max)
  {
    if(
$_SESSION['max'] && $page == $_SESSION['max'])
    {
     for(
$i $one$i $step$i ++)
       
$shh[] = $i;
    }
    else
     {
     for(
$i $_SESSION['min']; $i $_SESSION['min'] + 10$i ++)
       
$shh[] = $i;
     }

  }
  else
 {
   if(
$max <= 10)
   {  
  
// unset($shh);
     
for($i 0$i $max$i ++)
      
$shh[] = $i;
   }
         else {
         
// unset($shh);
     
for($i $max 10$i $max$i ++)
      
$shh[] = $i;
           }
  }

    if(
$_SESSION['min'] && $page == $_SESSION['min'])
     {
     unset(
$shh);
     
$st $page 8;
     
     if(
$st <= 0)
           {
         for(
$i 0$i 10$i ++)
        
$shh[] = $i;
           }
     
     else
        { 
      for(
$i $st$i 11 + ($page 9); $i ++)
      
$shh[] = $i;
        }
      }
     if(
$shh)
     {
    
$_SESSION['min'] = min($shh);
    
$_SESSION['max'] = max($shh);
     }
    
    
$smarty->assign('total'$max 1);
    
$smarty->assign('pages'$shh);
    
$smarty->assign('pagescount'$i);
    
// постраничная навигация
    
return;
    }
?>
на сайте ссылка вида ?page=9


работает вот так
http://maechka.com.ua/

  Ответить  
 
 автор: zorg84   (18.07.2011 в 14:35)   письмо автору
 
   для: moonfox   (18.07.2011 в 00:37)
 

О буду пробовать Спасибоо!!

Если есть ещё примеры выкладывайте

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

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