Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2012, 08:51   #1
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
Восклицание Просмотр таблицы, работа с записями.

Здравствуйте уважаемые программисты, у меня возникли 2 вопроса на которые я бы хотел получить ответы, вопросы следующего характера:
1)Имеется бд в postgresql я вывожу в html-форму таблицу вертикальной развертки, но при этом из таблицы выводится только первая запись, а мне нужно просматривать все записи поочередно, если сделать таблицу по горизонтали тогда все записи видно,вопрос: как мне именно осуществить переход по записям, если можно желательно с примером, в виде кнопок "вперед" и "назад" или гиперсылок в виде страниц - 1,2,3 и т.д.Как это можно осуществить программно.
2)Нужно сделать таблицу в виде гиперсылки,ну не саму таблицу а допустим один из столбцов, нажимаю на конкретную запись в таблице открывается другая таблица. К примеру: есть поле "Товары" в нем запись "Продукты" нажимаю на продукты открывается таблица продуктов и там продукты различного рода.
manula вне форума Ответить с цитированием
Старый 18.09.2012, 09:14   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

показывайте ваши наработки
ADSoft вне форума Ответить с цитированием
Старый 18.09.2012, 09:24   #3
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

PHP код:
pg_query($con"SET NAMES 'windows-1251'");

$query ="SELECT cstm,fio,tel FROM tb_main";
     
$res pg_query($con$query);
$row=pg_fetch_array($res);

echo 
"<table style='font: 18px times new roman;' width=100% bgcolor=#e3eef8 cellspacing=0 border=1>";
     
echo 
"<tr>
  <td>Заказчик:</td>
  <td>"
.$row['cstm']."</td>";
echo 
"</tr>";

echo 
"<tr>
  <td colspan=2 align=center bgcolor=#639ed1>Ответственный за подготовку:</td>
</tr>"
;

echo 
"<tr>
  <td>Ф.И.О:</td>
  <td>"
.$row['fio']."</td>";
echo 
"</tr>";

echo 
"<tr>
  <td>Телефон:</td>
  <td>"
.$row['tel']."</td>";
echo 
"</tr>";
     
echo 
"<tr>
      <td>Документы:</td>"
;
   
echo 
"<td>
<form name='View_table' action='View_doc.php' method='post'>
<select name='View_doc' size=1>"
;
        
 echo 
"<option selected value=1>Входящие документы</option>
 <option value=2>Исходящие документы</option>
 </select>&nbsp"
;

echo 
"<input type='submit'  class='gradient' name='CmdView_doc' value='Показать'>
</form>
</td></tr>
</table>"


Последний раз редактировалось manula; 18.09.2012 в 11:04.
manula вне форума Ответить с цитированием
Старый 18.09.2012, 10:28   #4
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

ищите по названию - пагинация в БД

примерна так.... получаете - какую страницу отображать - показываете именно её
Код:
$pag = intval($_GET['pag']);
$query ="SELECT activity,naim_prog,cstm,fio,tel FROM tb_main ORDER BY id ASC LIMIT $pag,1";
а в html коде
Код:
Страница: <a href="maim.php?pag=2">2</a>
по нажатию на данной ссылке - увидите именно вторую запись выборки
как их расплодить в цикле .. .или вабрать нужный вам способ - решайте сами .. подсказка дана )
ADSoft вне форума Ответить с цитированием
Старый 18.09.2012, 11:08   #5
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

Благодарю за помощь, а не могли бы Вы детально или поконкретнее описать данный метод, я просто не сильно в этом разбираюсь.Ну за подсказку все равно спасибо сейчас почитаю на эту тему побольше материала.
manula вне форума Ответить с цитированием
Старый 20.09.2012, 09:48   #6
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

Выдает ошибку такого рода:
Warning: pg_query(): Query failed: ERROR: LIMIT #,# syntax is not supported LINE 1: SELECT * from tb_test2 ORDER BY id DESC LIMIT 10, 5 ^ HINT: Use separate LIMIT and OFFSET clauses. in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\Paginat ion.php on line 78
В чем может быть проблема?
manula вне форума Ответить с цитированием
Старый 20.09.2012, 09:52   #7
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

пример писал для MySQL, в Postgress видимо немного другой синтаксис для LIMIT.... посмотрите в инете или мануале к БД
наверное типа LIMIT 5 OFFSET 10
ADSoft вне форума Ответить с цитированием
Старый 20.09.2012, 11:19   #8
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

Еще раз благодарю Вас, вы были правы,так все работает.
manula вне форума Ответить с цитированием
Старый 24.09.2012, 09:58   #9
manula
Форумчанин
 
Регистрация: 17.04.2011
Сообщений: 168
По умолчанию

Еще раз здравствуйте не могли бы Вы мне помочь еще раз,я уже понял что это не так то и просто осуществить пагинацию в postgresql, столько форумов облазил уже методов 5 испробовал, пока безрезультатно. Вот запрос:
PHP код:
$sum 1// число записей на странице
$sql "SELECT COUNT(*) AS A FROM tb_test2";
$result pg_query($con$sql);
$arr pg_fetch_row($result); // возвращает неассоциативный массив
$rec $arr[0];  // общее число записей в таблице
 
// если страница существует, выводим её,иначе первую
if(isset($_GET['p']))
        {
         
$str = (int)$_GET['p'];
        }
 else
        {
         
$str 0;
        }
 
// получем номер начальной записи страницы
$start $str $sum;
 
// запрос
 
pg_query($con"SET NAMES 'windows-1251'");
$r pg_query("SELECT * FROM tb_test2 LIMIT $start OFFSET $sum");
$n pg_num_rows($r); // возвращаем число строк результата запроса
 
// если страница не первая, выводим ссылку НАЗАД
if ($str 0)
{
 
$p $str 1;
 echo 
"<a href=pagination.php?p=$p>НАЗАД </a>";
}
 
$str++;  // увеличиваем переменную $str на единицу;
// выводим ссылку на следующие пять записей, если она есть,
// то есть число записей, которые нужно вывести,
// и смещение не превышает общего числа записей
 
if($start $n $rec)
echo 
"<a href=pagination.php?p=$str>ДАЛЕЕ </a>";
//Формирование таблицы ......
pg_query($con"SET NAMES 'windows-1251'");
$sql "SELECT * FROM tb_test2 ORDER BY id asc";
 
$result=pg_query($con,$sql);
$table "<table border=0 width=100% align=center>\n";
 
  echo 
"<table border =1>";
   echo 
"<tr>";
    echo 
"<th>№</th>";
    echo 
"<th> Категория</th>";
    echo 
"<th>Наименование</th>";
    echo 
"<th>Цена</th>";
   echo 
"<tr>";
 
for (
$i 0$i $n$i++)
 {
   while (
$myarr pg_fetch_array($r))
     {
        echo 
"<tr>";
          echo 
"<td>" .$myarr['id'].  "</td>";
          echo 
"<td>" .$myarr['cat'].  "</td>";
          echo 
"<td>" .$myarr['naim']. "</td>";
          echo 
"<td>" .$myarr['price'].  "</td>";
         echo 
"</tr>";
     }
 }
echo 
"</table>"
Данный метод работает он выводит строки при нажатии кнопки "Далее",только мне нужно сделать следующее:
1)Чтобы таблица отображалась не горизонтально а вертикально, т.е. таблица состоит из двух столбцов, 1-ый столбец это названия реквизитов (№, категория, наименование ...), а 2-ой столбец их значения.
2)При просмотре таблицы чтобы отображалась только первая запись, а при нажатии кнопки далее менялись значения во 2-ом столбце, т.е. только значения, а шапка оставалась без изменения (1-ый столбец). Вот собственно что мне надо осуществить.
manula вне форума Ответить с цитированием
Старый 24.09.2012, 10:52   #10
9i.
Форумчанин
 
Регистрация: 29.09.2011
Сообщений: 103
По умолчанию

Цитата:
Сообщение от manula Посмотреть сообщение
2)При просмотре таблицы чтобы отображалась только первая запись, а при нажатии кнопки далее менялись значения во 2-ом столбце, т.е. только значения, а шапка оставалась без изменения (1-ый столбец). Вот собственно что мне надо осуществить.
копайте в сторону ajax
9i. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
работа с записями Миша_misha Паскаль, Turbo Pascal, PascalABC.NET 0 30.05.2012 23:07
Работа с записями. dima-intro Помощь студентам 5 30.12.2010 10:01
работа с записями Андрей.12 Помощь студентам 0 20.12.2009 19:17
работа с записями wawan93 Microsoft Office Word 0 26.06.2009 14:48
просмотр поля Таблицы Anna_fors Компоненты Delphi 3 05.06.2009 15:16