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

Форум PHP

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

 

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

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

тема: Проблемы в работе постраничного навигатора

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

 
 автор: Степан   (29.06.2009 в 13:15)   письмо автору
 
   для: Slo_Nik   (29.06.2009 в 11:09)
 

Переписал. Все заработало. Спасибо!

  Ответить  
 
 автор: Slo_Nik   (29.06.2009 в 11:09)   письмо автору
 
   для: Степан   (29.06.2009 в 10:24)
 

перепиши код для вывода изображений на экран без использования do...while,используй просто while, тогда будет всё нормально.
цикл do...while всегда будет выполнен хотя бы один раз, поэтому у тебя и дублируется изображение.

  Ответить  
 
 автор: Степан   (29.06.2009 в 10:24)   письмо автору
 
   для: dyadya   (26.06.2009 в 21:02)
 

Исправил код:
Для соединения с базой:

mysql_select_db($database_Guest, $Guest);
$query_pictures = sprintf("SELECT * FROM painting WHERE nameid = %s ORDER BY title ASC", GetSQLValueString($colname_pictures, "int"));
$pictures = mysql_query($query_pictures, $Guest) or die(mysql_error());
$row_pictures = mysql_fetch_assoc($pictures);
$totalRows_pictures = mysql_num_rows($pictures);

$colname_pictures = "-1";
if (isset($_GET['name'])) {
  $colname_pictures = (get_magic_quotes_gpc()) ? $_GET['name'] : addslashes($_GET['name']);
}

$maxRows_pictures = 8;
$page = 1;

if (isset($_GET['page'])) {
  $page = $_GET['page'];
}
$startRow_pictures = $page * $maxRows_pictures-$maxRows_pictures;


$query_limit_pictures = sprintf("%s LIMIT %d, %d", $query_pictures, $startRow_pictures, $maxRows_pictures);
$pictures1 = mysql_query($query_limit_pictures, $Guest) or die(mysql_error());



Для вывода изображений на экран:

<?php             
            $td 
1;
             do {   
                  if (
$td == 1)
                   {
                  echo 
"<tr>";
                   }
                 
?>    
                <th width="200" scope="row"><p class="style5"><a href="Picture.php?name=<?php echo $row_name['id']; ?> &id=<?php echo $row_pictures['id']; ?> "><img src="<?php echo $row_pictures['fullname']; ?>" border="0" /></a></p>
                <p class="style5"><?php echo $row_pictures['title']; ?></p>
                <p class="style5">
                  <?php if (((isset($_SESSION['MM_Username'])) && (isAuthorized("""a,m"$_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) { ?>
                </p>
                <p class="style5"><a href="deletePic.php?name=<?php echo $row_name['id']; ?> &id=<?php echo $row_pictures['id']; ?>">удалить</a></p>
                <?php 
              
$td++; 
              if (
$td == 4)
     {
        echo 
"</th></tr>";
        
$td 1;
      } 
               
             } while (
$row_pictures mysql_fetch_assoc($pictures1)); ?>


Изображения выводятся, навигатор работает, но одно из изображений дублируется на каждую страницу.

  Ответить  
 
 автор: Skinhead1   (26.06.2009 в 21:15)   письмо автору
 
   для: Степан   (26.06.2009 в 13:25)
 

Сам писал? Иль кто подсказал? Какая-то херня если честно...

  Ответить  
 
 автор: dyadya   (26.06.2009 в 21:02)   письмо автору
 
   для: Степан   (26.06.2009 в 08:59)
 

Я бы, на Вашем месте, сформировал бы для начала страницу с любыми картинками без всякой БД.
Синтаксис для тэга ТН:

<table>   <tr>    <th>...</th>   </tr>  </table>


Не видно закрывающего тега ТН и присутствует непонятный параметр: th width="200" scope="row"

  Ответить  
 
 автор: Slo_Nik   (26.06.2009 в 19:28)   письмо автору
 
   для: Степан   (26.06.2009 в 13:25)
 

ты в этом уверен?

  Ответить  
 
 автор: Степан   (26.06.2009 в 13:25)   письмо автору
 
   для: mihdan   (26.06.2009 в 11:36)
 

без этого цикла будет выводиться только одна картинка

  Ответить  
 
 автор: mihdan   (26.06.2009 в 11:36)   письмо автору
 
   для: Степан   (26.06.2009 в 08:59)
 

do...while то здесь зачем?

  Ответить  
 
 автор: Степан   (26.06.2009 в 08:59)   письмо автору
 
 

Прошу помощи в решении следующей проблемы. На каждой странице должны выводится изображения 9 штук в 3 ряда. Вот код постраения таблицы

<?php
            $td 
1;
             do {             
                
                  if (
$td == 1)
                   {
                  echo 
"<tr>";
                   }
                 
?>    
                <th width="200" scope="row"><p class="style5"><a href="Picture.php?name=<?php echo $row_name['id']; ?> &id=<?php echo $row_pictures['id']; ?> "><img src="<?php echo $row_pictures['fullname']; ?>" border="0" /></a></p>
                <p class="style5"><?php echo $row_pictures['title']; ?></p>
                <p class="style5">
                  <?php if (((isset($_SESSION['MM_Username'])) && (isAuthorized("""a,m"$_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) { ?>
                </p>
                <p class="style5"><a href="deletePic.php?name=<?php echo $row_name['id']; ?> &id=<?php echo $row_pictures['id']; ?>">удалить</a></p>
                <?php }                 
              
$td++; 
              if (
$td == 4)
     {
        echo 
"</tr>";
        
$td 1;
      } 
         } while (
$row_pictures mysql_fetch_assoc($pictures)); ?>





Код подключения к базе и создания переменных:

maxRows_pictures = 9;
$page = 1;

if (isset($_GET['page'])) {
  $page = $_GET['page'];
}
$startRow_pictures = $page * $maxRows_pictures;

$colname_pictures = "-1";
if (isset($_GET['name'])) {
  $colname_pictures = (get_magic_quotes_gpc()) ? $_GET['name'] : addslashes($_GET['name']);
}
mysql_select_db($database_Guest, $Guest);
$query_pictures = sprintf("SELECT * FROM painting WHERE nameid = %s ORDER BY title ASC", $colname_pictures);
$query_limit_pictures = sprintf("%s LIMIT %d, %d", $query_pictures, $startRow_pictures, $maxRows_pictures);
$pictures = mysql_query($query_limit_pictures, $Guest) or die(mysql_error());
$row_pictures = mysql_fetch_assoc($pictures);

if (isset($_GET['totalRows_pictures'])) {
  $totalRows_pictures = $_GET['totalRows_pictures'];
} else {
  $all_pictures = mysql_query($query_pictures);
  $totalRows_pictures = mysql_num_rows($all_pictures);
}
$total = intval(($totalRows_pictures - 1) / $maxRows_pictures) + 1;

if(empty($page) or $page < 0) $page = 1;  
  if($page > $total) $page = $total;



код создающий навигатор типа << < ..2|3|<b>4</b>|5|6.. > >> :

<?php  

if ($page != 1$pervpage '<a href= ?name='.$row_name['id'] .'&page=1><<</a>  
                               <a href= ?name='
.$row_name['id'] .'&page='. ($page 1) .'><</a> ';  

if (
$page != $total$nextpage ' <a href= ?name='.$row_name['id'] .'&page='. ($page 1) .'>></a>  
                                   <a href= ?name='
.$row_name['id'] .'&page=' .$total'>>></a>';  


if(
$page 0$page2left ' <a href= ?name='.$row_name['id'] .'&page='. ($page 2) .'>'. ($page 2) .'</a> | ';  
if(
$page 0$page1left '<a href= ?name='.$row_name['id'] .'&page='. ($page 1) .'>'. ($page 1) .'</a> | ';  
if(
$page <= $total$page2right ' | <a href= ?name='.$row_name['id'] .'&page='. ($page 2) .'>'. ($page 2) .'</a>';  
if(
$page <= $total$page1right ' | <a href= ?name='.$row_name['id'] .'&page='. ($page 1) .'>'. ($page 1) .'</a>'

  
echo 
$pervpage.$page2left.$page1left.'<b>'.$page.'</b>'.$page1right.$page2right.$nextpage;  




На сайт загружено 6 картинок. Если переменная $maxRows_pictures=9, то они не отображаются на странице. Когда устанавливаю $maxRows_pictures=1 - отображаются все по одной на каждой странице. Если $maxRows_pictures=3 - отображаются 3 картинки: 2 на одной странице, 1 - на другой. Подскажите, пожалуйста, где я допустил ошибку, несколько раз перепроверял код так ее и не нашел.

  Ответить  

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

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

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