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

Форум MySQL

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

 

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

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

тема: Постраничный вывод из mysql
 
 автор: sidPR   (29.08.2005 в 12:24)   письмо автору
 
 

Вот дамп нужно зделать постраничный вывод.
см. вложение

   
 
 автор: sidPR   (29.08.2005 в 12:28)   письмо автору
 
   для: sidPR   (29.08.2005 в 12:24)
 

постарничный вывыод
1 - выглядить должен так << < 1 2 3 > >>
2 - если база пуста вывода нету.

вывод я произвожу так >>

$select_sql = "SELECT *  FROM '$table' ORDER BY 'id' DESC";
$result = MYSQL_QUERY($select_sql);
$number = MYSQL_NUMROWS($result);
$i = 0;

IF ($number == 0) {
PRINT "<CENTER><P>Автомобилей в наличии нет !времено</CENTER>";
} ELSEIF ($number > 0) {
PRINT "<CENTER><P>Автомобилей в наличии: $number<BR><BR>";

WHILE ($i < $number){
    
$id = mysql_result($result,$i,"id");
$auto = mysql_result($result,$i,"Auto");
$date = mysql_result($result,$i,"date");
$scrin = mysql_result($result,$i,"scrin");
$scrinsmall = mysql_result($result,$i,"scrinsmall");
$file = mysql_result($result,$i,"file");
$ops = mysql_result($result,$i,"ops");

$width = '800';
$height = '600';
?>
<script language='JavaScript1.1' type='text/javascript'> 
<!-- 
function show_img(img,width,height) 

   var a; 
   var b; 
   var features; 
   vidWindowWidth=width + 1; 
   vidWindowHeight=height + 1; 
   a = 0; 
   b = 0; 
   features = "top=" + a + ",left=" + b + ",width=" + vidWindowWidth + ",height=" + vidWindowHeight + ", toolbar=0, menubar=0, status=0, location=0, directories=0, scrollbars=0, resizable=0, marginwidth=0, marginheight=0, bottommargin=0, topmargin=0, leftmargin=0, rightmargin=0"; 
   window.open(img,'',features,true); 
   return false; 

//--> 
</script> 
<?


print  " <br>
 <center>
  <table border='0' cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#111111' width='400' height='1'>
    <tr>
      <td width='216' height='1' rowspan='4'><center><a title='Увеличить изображение 800x600' href=# OnClick=\"javascript:show_img('
$scrin',$width$height); return false;\">
      <img border='0' src='
$scrinsmall' align='left'></a></center>
</td>
      <td width='498' height='1'>Марка: <b>
$auto</b></td>
    </tr>
    <tr>
      <td width='498' height='1'>Год выпуска: <b>
$date</b></td>
      </tr>
    <tr>
      <td width='162' height='1' valign='top'>
      <p align='left'>Описание: <b>
$ops</b></td>
    </tr>
    <tr>
      <td width='494' height='34' valign='top'>
      

 <b><p>Скачать: <a title='Закачать тачку' href='
$file'>
<img border='0' src='img/dd.gif' align='center'></a></p></b></td>
    </tr>
    </table>
  </center>"
;

   
 
 автор: Евгений Петров   (29.08.2005 в 12:58)   письмо автору
 
   для: sidPR   (29.08.2005 в 12:24)
 

Почитай тут если останутся вопросы пиши http://www.softtime.ru/info/articlephp.php?id_article=33

   
 
 автор: sidPR   (29.08.2005 в 13:01)   письмо автору
 
   для: Евгений Петров   (29.08.2005 в 12:58)
 

караз таки по этому скрипту нечего невыходит в нем недоделок уйма ...
вот я на форуме задавал вопрос как модернизировать его но многоуважаемый cheops попросил переместиться сюда и зделать дамп базы данных обещяя помочь

Заранее всем спасибо

   
 
 автор: cheops   (29.08.2005 в 20:47)   письмо автору
 
   для: sidPR   (29.08.2005 в 13:01)
 

Давайте немного упростим скрипт и перейдём от mysql_result к более эффективному mysql_fetch_array
<?php
  
// Устанавливаем соединение с базой данных
  
include "config.php";
  
$table 'gtat';

  
// Число блоков на странице
  
$pnumber 2;
  
// Элемент постраничной навигации
  
$page $_GET['page'];
  if(empty(
$page)) $page 1;
  
$begin = ($page 1)*$pnumber;

  
// Формируем и выполняем SQL-запрос
  
$select_sql "SELECT *  FROM $table 
                 ORDER BY id DESC
                 LIMIT 
$begin$pnumber";
  
$result MYSQL_QUERY($select_sql); 
  if(!
$result) exit(mysql_error());

  
// Постраничная навигация
  
$query "SELECT COUNT(*) FROM $table ";
  
$ctg mysql_query($query);
  if(!
$ctgputerror("Ошибка при обращении к таблице");
  
$total mysql_result($ctg,0);

  IF (
$total == 0) { 
    PRINT 
"<CENTER><P>Автомобилей в наличии нет !времено</CENTER>"
  }
  ELSEIF (
$total 0)
  { 
    PRINT 
"<CENTER><P>Автомобилей в наличии: $total<BR><BR>"

    WHILE (
$arr mysql_fetch_array($result))
    { 
      
$id $arr['id'];
      
$auto $arr['auto'];
      
$date $arr['date'];
      
$scrin $arr['scrin'];
      
$scrinsmall $arr['scrinsmall'];
      
$file $arr['file'];
      
$ops $arr['ops'];
      echo 
$auto."<br>";
      
$i++;
    }
  }
  
$number = (int)($total/$pnumber);
  if((float)(
$total/$pnumber) - $number != 0$number++;
  echo 
"Страницы: ";
  for(
$i 1$i<=$number$i++)
  {
    if(
$page == $i)
      echo 
"&nbsp;$i&nbsp;";
    else
      echo 
"&nbsp;<a title='Открыть страницу' class=menuinfo href=index.php?id_group=".$_GET['id_group']."&page=".$i.">$i</a>&nbsp;";
  }

?>

   
 
 автор: sidPR   (29.08.2005 в 22:20)   письмо автору
 
   для: cheops   (29.08.2005 в 20:47)
 

Отличный код советую всем ! спасибо уважаемуму cheops'у !
вопрос а как к выше поставленому коду прекрутить <самая первая <<предпоследняя ну и также в другую сторону и чтобы все время выводилось не вся постраничная а только 5 чисел примеру :
< << 1 2 3 4 5 >> >
а при переключении к примеру на 5 (появлелось другая 5 только ужэ соответственно такого вида :
< << 6 7 8 9 10 >> >
______________________________________

и самое главно возможно ли зделать помимо постраничной навигации алфавитную ... а тоесть по первой букве какого либо слова таблице SQL в нашем случае $auto = $arr['auto'];
если это реально то покажите наглядно уж очень интересно как это делаеться*

-------- Заранее всем благадарен за помащь!!!

   
 
 автор: cheops   (30.08.2005 в 13:47)   письмо автору
 
   для: sidPR   (29.08.2005 в 22:20)
 

Тогда постраничную навигацию можно испрвить следующим образом
<?php
  
// Устанавливаем соединение с базой данных
  
include "config.php";
  
$table 'gtat';

  
// Число блоков на странице
  
$pnumber 2;
  
// Число страниц справа и слева от текущей страницы < << 2 3 [4] 5 6 >> >
  
$linknumber 2;
  
// Элемент постраничной навигации
  
$page $_GET['page'];
  if(
$page 1$page 1;
  if(empty(
$page)) $page 1;
  
$begin = ($page 1)*$pnumber;

  
// Формируем и выполняем SQL-запрос
  
$select_sql "SELECT *  FROM $table 
                 ORDER BY id DESC
                 LIMIT 
$begin$pnumber";
  
$result MYSQL_QUERY($select_sql); 
  if(!
$result) exit(mysql_error());

  
// Постраничная навигация
  
$query "SELECT COUNT(*) FROM $table ";
  
$ctg mysql_query($query);
  if(!
$ctgputerror("Ошибка при обращении к таблице");
  
$total mysql_result($ctg,0);

  IF (
$total == 0) { 
    PRINT 
"<CENTER><P>Автомобилей в наличии нет !времено</CENTER>"
  }
  ELSEIF (
$total 0)
  { 
    PRINT 
"<CENTER><P>Автомобилей в наличии: $total<BR><BR>"

    WHILE (
$arr mysql_fetch_array($result))
    { 
      
$id $arr['id'];
      
$auto $arr['auto'];
      
$date $arr['date'];
      
$scrin $arr['scrin'];
      
$scrinsmall $arr['scrinsmall'];
      
$file $arr['file'];
      
$ops $arr['ops'];
      echo 
$auto."<br>";
      
$i++;
    }
  }
  
$number = (int)($total/$pnumber);
  if((float)(
$total/$pnumber) - $number != 0$number++;
  
// Вычисляем начальную позицию
  
if($page $linknumber 1$str_begin 1;
  else 
$str_begin $page $linknumber;
  
// Вычисляем конечную позицию
  
if($page $linknumber $number$str_end $number;
  else 
$str_end $page $linknumber;
  
// Выводим ссылки на другие страницы
  
echo "Страницы: ";
  echo 
"&nbsp;<a title='Первая страница' class=menuinfo href=index.php?page=1>&lt;&lt;</a>&nbsp;";
  if(
$page 1) echo "&nbsp;<a title='Первая страница' class=menuinfo href=index.php?page=".($page 1).">&lt;</a>&nbsp;";
  for(
$i $str_begin$i<=$str_end$i++)
  {
    if(
$page == $i)
      echo 
"&nbsp;$i&nbsp;";
    else
      echo 
"&nbsp;<a title='Открыть страницу' class=menuinfo href=index.php?page=".$i.">$i</a>&nbsp;";
  }
  if(
$page $number) echo "&nbsp;<a title='Первая страница' class=menuinfo href=index.php?page=".($page 1).">&gt;</a>&nbsp;";
  echo 
"&nbsp;<a title='Первая страница' class=menuinfo href=index.php?page=$number>&gt;&gt;</a>&nbsp;";
?>

   
 
 автор: cheops   (30.08.2005 в 13:55)   письмо автору
 
   для: sidPR   (29.08.2005 в 22:20)
 

>и самое главно возможно ли зделать помимо постраничной
>навигации алфавитную ... а тоесть по первой букве какого
>либо слова таблице SQL в нашем случае $auto = $arr['auto'];
Вообще формирование ссылок осуществляют при помощи следующиго запроса
SELECT MID(auto,1,1) AS first_char FROM gtat
GROUP BY first_char ORDER BY first_char

Правда в вашем случае не совсем удобно получится - так как у вас некоторые автомобили начинаются с года и вместо названия идёт первая цифра года. Затем когда список букв получен переходя по ссылке извлекают все автомобили, чьё название начинается с выбранной буквы
SELECT * FROM gtat WHERE MID(auto,1,1) = 'K'

PS Под новые вопросы лучше заводить новую тему - иначе потом очень трудно ссылаться.

   
Rambler's Top100
вверх

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