Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Постаничный вывод данных 
V
    Опции темы
Frazelli
Дата 19.1.2010, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 31.1.2009

Репутация: нет
Всего: нет



Здравствуйте. Помогите пожалуйста решить ворпос с выводом текста из бд.
Есть таблица с id и text. В скрипте выводятся ссылки. Как сделать чтобы при нажатии на ссылку например http://localhost/index.php?page=3 выводился текст из бд?


Код

<?php

$connect = mysql_connect($server, $user, $password) or die (mysql_error);
$select = mysql_select_db($db) or die (mysql_error);
$query = mysql_query("SELECT * from $table ORDER by id desc") or die (mysql_error);
$num_rows = mysql_num_rows($query);

if (isset ($_GET['page']))
{
  $nav = $_GET['page'];
}
  else
{
  $nav = 0;
}
$nav = intval($nav);

for ($i=0; $i<=$num_rows; $i++) {
if ($i != $nav) {
echo '<a href="'.$PHP_SELF.'?page='.$i.'">'.$i.'</a> ';
}
else {
echo '<span>'.$i.'</span> ';
}
}

if (!isset($_GET['page']))
{
  $page=0;
}
  else
{
  $page = $_GET['page'];
}
$query = mysql_query("SELECT * from $table");

mysql_close($connect);

?>



PM MAIL ICQ Skype   Вверх
bars80080
Дата 19.1.2010, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 9
Всего: 315



осталось добавить в выборку предел:

Код

$sql = 'SELECT * from $table ORDER by id desc LIMIT '.$start.', 10';


где $start = 10*$_GET['page'];
PM MAIL WWW   Вверх
Ипатьев
Дата 19.1.2010, 01:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 3
Всего: 37



конкретно этот код не сработает smile
но направление верное, конечно
PM MAIL   Вверх
Frazelli
Дата 19.1.2010, 06:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 31.1.2009

Репутация: нет
Всего: нет



Не получается чтобы по ссылкам что-то отображалось.

smile 
PM MAIL ICQ Skype   Вверх
Serkys
Дата 19.1.2010, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: 1
Всего: 22



Цитата(bars80080 @  19.1.2010,  01:32 Найти цитируемый пост)
где $start = 10*$_GET['page']; 

Я бы даже сказал, $start = 10 * ($_GET['page'] - 1)
если, конечно, страницы не с нуля отсчитываются.
PM MAIL   Вверх
Ипатьев
Дата 19.1.2010, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 3
Всего: 37



Frazelli, а вы уверены, что пример у вас заработает?
Дело ведь может быть совсем не в коде. 
PM MAIL   Вверх
Frazelli
Дата 19.1.2010, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 31.1.2009

Репутация: нет
Всего: нет



Конечно заработает, а куда он денется.
Пока интересует только реализация вывода текста при переходе по ссылке, а дальше разберемся.

PM MAIL ICQ Skype   Вверх
Ипатьев
Дата 19.1.2010, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 3
Всего: 37



Ну, для начала надо определиться с понятием "текст из БД"
для меня, например - это содержимое текстового поля одной строки в базе данных
PM MAIL   Вверх
Frazelli
Дата 19.1.2010, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 31.1.2009

Репутация: нет
Всего: нет



Именно так.
Нужно чтобы при переходе по ссылке http://localhost/index.php?page=3 выводилось содержимое текстового поля одной строки с id=3.
PM MAIL ICQ Skype   Вверх
Ипатьев
Дата 19.1.2010, 17:38 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 3
Всего: 37



Ну вот и выясняется, что путаница была в названиях. И "пример" было давать бесполезно.
словами "постраничный вывод" в веб-программировании называется совсем другое.

по своему вопросу откройте для себя SQL оператор WHERE
PM MAIL   Вверх
Frazelli
Дата 21.1.2010, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 31.1.2009

Репутация: нет
Всего: нет



Вопрос решен. Всем спасибо.

Код

$result = mysql_query("SELECT * from $table WHERE id = '".$_GET['id']."';", $connect);
        if(empty($_GET['id'])) $_GET['id'] = 1;
        $result = mysql_query("SELECT * FROM $table WHERE id = '".$_GET['id']."';", $connect);
        $row = mysql_fetch_array($result); 

PM MAIL ICQ Skype   Вверх
Ипатьев
Дата 21.1.2010, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 3
Всего: 37



Я зачем два раза-то запрос выполнять?
И, если мы помещаем литерал в кавычки, то к нему всегда надо применять mysql_real_escape_string(). Это два действия, которые всегда выполняются вместе. 
PM MAIL   Вверх
Frazelli
Дата 22.1.2010, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 31.1.2009

Репутация: нет
Всего: нет



Цитата

Я зачем два раза-то запрос выполнять?

Второй раз для того чтобы при переходе http://localhost/index.php сразу выводилась строка с id=1. Если убрать, то ничего не выводится.

Цитата

И, если мы помещаем литерал в кавычки, то к нему всегда надо применять mysql_real_escape_string()

При выводе я использую stripslashes(), пока не понятно зачем тут mysql_real_escape_string()

Это сообщение отредактировал(а) Frazelli - 22.1.2010, 15:37
PM MAIL ICQ Skype   Вверх
lelik133
Дата 22.1.2010, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 517
Регистрация: 5.2.2003
Где: Москва

Репутация: 3
Всего: 14



Цитата

Второй раз для того чтобы при переходе http://localhost/index.php сразу выводилась строка с id=1. Если убрать, то ничего не выводится.

а перенести if на 2 строчки выше и избавиться от 2 одинаковых запросов нельзя?

PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.1104 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.