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

Форум PHP

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

 

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

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

тема: Вывод данных из таблицы
 
 автор: igor_gin   (02.08.2012 в 09:03)   письмо автору
27 Кб
 
 

Добрый день, уважаемые форумчане!
Помогите, пожалуйста, "чайнику"...
В базе MySQL имеется таблица с полями: id, name, avtor, god, size, format, str и д.р.
Данные из таблицы (поля id, name, avtor, god, size, format) постранично выводятся на экран.
Вопрос: как сделать, чтобы поле name выводилось в виде гиперссылки и что бы в дальнейшем при клике на ссылку, открывалась отдельная страница в которой добавлялись к выводу остальные столбцы (str и д.р.).
Примерный результат, который хотелось бы получить и то, что получилось сейчас можно посмотреть во вложенном файле.

Теперь имеющийся код:
<?php  
// Устанавливаем соединение с базой данных  
include "connect.php";  
// Переменная хранит число сообщений выводимых на станице  
$num 10;  
// Извлекаем из URL текущую страницу  
$page $_GET['page'];  
// Определяем общее число сообщений в базе данных  
$result mysql_query("SELECT COUNT(*) FROM book");  
$posts mysql_result($result0);  
// Находим общее число страниц  
$total intval(($posts 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 book ORDER BY `id` DESC LIMIT $start$num"); 
// В цикле переносим результаты запроса в массив $postrow  
while ( $postrow[] = mysql_fetch_array($result))  

echo 
"<table>";  
 echo 
"<tr bgcolor=#CCCCFF> 
     <td width=5% valign=middle><b>#</b></td>          
     <td width=40% valign=middle><b>Название публикации</b></td> 
        <td width=25% valign=middle><b>Автор</b></td>
     <td width=5% valign=middle><b>Год издания</b></td>
     <td width=5% valign=middle><b>Размер</b></td>
     <td width=5% valign=middle><b>Формат</b></td>
     <td width=15% valign=middle><b>Дата добавления</b></td>
</tr>"

for(
$i 0$i $num$i++) 
  {  
 echo 
"<tr bgcolor=#D4DFFF> 
                       <td width=5%>
$postrow[$i]['id']."</td>          
     <
td width=40%><[b]a href=\info.php?id=$id[/b]>".$postrow[$i]['name']."</a></td>  
                       <
td width=25%>".$postrow[$i]['avtor']."</td>
     <
td width=5%>".$postrow[$i]['god']."</td>
     <
td width=5%>".$postrow[$i]['size']."</td>
     <
td width=5%>".$postrow[$i]['format']."</td>
     <
td width=15%>".$postrow[$i]['data']."</td>
</
tr>";  
}  
echo "
</table>";  
echo 'Страницы: ';
// Проверяем нужны ли стрелки назад  
if (
$page != 1) $pervpage = '<a href= ./page.php?page=1><<</a>  
                               <a href= ./page.php?page='. (
$page - 1) .'><</a> ';  
// Проверяем нужны ли стрелки вперед  
if (
$page != $total$nextpage = ' <a href= ./page.php?page='. ($page + 1) .'>></a>  
                                   <a href= ./page.php?page=' .
$total. '>>></a>';  

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

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

?> 


Сделал скрипт info.php. В нем пютаюсь принимайть $_GET['id'] и выводить по нему полную информацию, но к сожалению это не получается сделать.

Зараннее спасибо!

  Ответить  
 
 автор: cheops   (02.08.2012 в 09:35)   письмо автору
 
   для: igor_gin   (02.08.2012 в 09:03)
 

Вам следует поступить как-то так
<?php
...
for(
$i 0$i $num$i++)  
{   
 echo 
"<tr bgcolor=#D4DFFF>  
                       <td width=5%>"
.$postrow[$i]['id']."</td>           
     <td width=40%><a href='info.php?id="
.$postrow[$i]['id']."'>".$postrow[$i]['name']."</a></td>   
                       <td width=25%>"
.$postrow[$i]['avtor']."</td> 
     <td width=5%>"
.$postrow[$i]['god']."</td> 
     <td width=5%>"
.$postrow[$i]['size']."</td> 
     <td width=5%>"
.$postrow[$i]['format']."</td> 
     <td width=15%>"
.$postrow[$i]['data']."</td> 
</tr>"
;
}
...
?>

  Ответить  
 
 автор: igor_gin   (02.08.2012 в 09:51)   письмо автору
 
   для: cheops   (02.08.2012 в 09:35)
 

Большое спасибо!
А не могли бы Вы еще немного помочь?
После перехода по ссылке запускается файл info.php
Определяется полученное значение поля id и необходимо сделать выборку из базы всех полей, соотвествующих данному id
Подскажите, пожалуйста, правильно ли составлен запрос и как вывести результаты запроса на экран?

<?php
$id
$_GET['id']; //выводится значение поля id
$result mysql_query("SELECT * FROM book WHERE ('id'=$id)");
.....???
 

  Ответить  
 
 автор: igor_gin   (03.08.2012 в 10:44)   письмо автору
 
   для: igor_gin   (02.08.2012 в 09:51)
 

Вопрос закрыт.

  Ответить  
 
 автор: confirm   (03.08.2012 в 10:56)   письмо автору
 
   для: igor_gin   (03.08.2012 в 10:44)
 

Нет не закрыт, так необработанные данные, которые подставляются параметром в запрос, это прямой путь для взлома.
Необходимо так:
<?
$id 
= (int)$_GET['id']

И в вашем случае в скобках после WHERE нет необходимости. И кавычки для полей, это:
`id` = $id

  Ответить  
 
 автор: igor_gin   (03.08.2012 в 15:39)   письмо автору
 
   для: confirm   (03.08.2012 в 10:56)
 

Большое спасибо за помощь!

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

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