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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ссылки на содержимое ячеек БД, нужно вывести данные из другого столбца 
:(
    Опции темы
lurnette
Дата 16.3.2013, 06:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Всем доброго времени суток!
Вот такая проблема у меня возникла: есть таблица в MySQL, которая состоит из трех столбцов ("id", "title" и "description"). И есть программа,  которая выводит содержимое столбца "title" в виде списка. Нужно оформить этот список в форме ссылок, при нажатии на которые выводится содержимое соответствующих строк, но из столбца "description".
Вот код, все работает правильно, навигация по страницам имеется, только вот с ссылками беда.
Код

<?php
define('HOST', '127.0.0.1');
define('USER', 'root');
define('PASSWORD', '');
define('NAME_BD', 'db');

function yandex_link_bar($page, $count, $pages_count, $show_link)
{
// Если страница всего одна, то ничего не выводим
if ($pages_count == 1) return false;

$sperator = ' '; // Разделитель ссылок

// Сам постраничный вывод
// Если количество отображаемых ссылок больше кол-ва страниц
if ($pages_count <= $show_link + 1) $show_dots = 'no';
// Вывод ссылки на первую страницу
if (($begin > 2) && ($pages_count - $show_link > 2)) {
echo '<a href='.$_SERVER['php_self'].'?page=1> |< </a> ';
}
for ($j = 0; $j <= $show_link; $j++) // Основный цикл вывода ссылок
{
$i = $begin + $j; // Номер ссылки
// Если страница рядом с началом, то увеличить цикл
if ($i < 1) continue;

if (!isset($show_dots) && $begin > 1) {
echo ' <a href='.$_SERVER['php_self'].'?page='.($i-1).'><b>...</b></a> ';
$show_dots = "no";
}
// Если номер ссылки больше возможного количества страниц
if ($i > $pages_count) break;
if ($i == $page) {
echo ' <a href><b>'.$i.'</b></a> ';
} else {
echo ' <a href='.$_SERVER['php_self'].'?page='.$i.'>'.$i.'</a> ';
}
// Если номер ссылки не равен кол-ву страниц и это не последняя ссылка
if (($i != $pages_count) && ($j != $show_link)) echo $sperator;
// Вывод "..." в конце
if (($j == $show_link) && ($i < $pages_count)) {
echo ' <a href='.$_SERVER['php_self'].'?page='.($i+1).'><b>...</b></a> ';
}
}
// Вывод ссылки на последнюю страницу
if ($begin + $show_link + 1 < $pages_count) {
echo ' <a href='.$_SERVER['php_self'].'?page='.$pages_count.'> >| </a>';
}
return true;
} // Конец функции

// Подключение к базе данных
$connect = mysql_connect(HOST, USER, PASSWORD)
or die("No connect with database"        .mysql_error( ));
print ("Yes! Connected with database <br><br>");

mysql_select_db(NAME_BD, $connect)
or die ("No database"        .mysql_error( ));

// Подготовка к постраничному выводу
$perpage = 10; // Количество отображаемых данных из БД
if (empty($_GET['page']) || ($_GET['page'] <= 0)) {
$page = 1;
} else {
$page = (int) $_GET['page']; // Считывание текущей страницы
}
// Общее количество информации
$res = mysql_query("select count(id) as count from `table`") or die(mysql_error());
$row = mysql_fetch_assoc($res);
$count = $row['count'];
$pages_count = ceil($count / $perpage); // Количество страниц
// Если номер страницы оказался больше количества страниц
if ($page == 0) {
    $start_post = 0;
} else {
    $start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД
}
// Вызов функции, для вывода ссылок на экран
yandex_link_bar($page, $count, $pages_count, 10);

// Вывод информации из базы данных
echo '<p><b>Data output!</b></p>';
$query = 'select * from `table` limit '.$start_pos.', '.$perpage;
var_dump($query);
$result = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
    // вот тут я пытался оформить ссылки, ссылки есть, но ссылаются не туда, куда надо
    echo '<p><a href="./?db=', $row['title'], '" target="_blank">', $row['title'], '</a></p>'; 
}
?>

PM MAIL   Вверх
Gold Dragon
Дата 16.3.2013, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

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



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

echo '<p><a href="./?db='. $row['title']. '" target="_blank">'. $row['title']. '</a></p>'; 


Это сообщение отредактировал(а) Gold Dragon - 16.3.2013, 09:30


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
lurnette
Дата 16.3.2013, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Большое спасибо за ответ, но, к сожалению, ничего не изменилось(
PM MAIL   Вверх
Arantir
Дата 16.3.2013, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Рыбак без удочки
**


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

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



Цитата(lurnette @  16.3.2013,  05:48 Найти цитируемый пост)
echo '<p><a href="./?db=', $row['title'], '" target="_blank">', $row['title'], '</a></p>'; 

Ссылка — не путь к файлу на диске. Она должна быть либо абсолютной, либо относительно корня сайта. То есть, в ней не может быть никаких "." и "..".



--------------------
interface Жопа {
    // ATTENTION: has to be implemented by every class of the project for proper project work
}
PM   Вверх
lurnette
Дата 16.3.2013, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Хорошо, это я понимаю, но как это сделать?
PM MAIL   Вверх
Gold Dragon
Дата 16.3.2013, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

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



Цитата(lurnette @  16.3.2013,  17:44 Найти цитируемый пост)
Хорошо, это я понимаю, но как это сделать? 
допустим у тебя title примерно так: "Это самый лучший форум" и тогда что у тебя будет за ссылка???
Цитата

./?db=%D0%AD%D1%82%D0%BE%20%D1%81%D0%B0%D0%BC%D1%8B%D0%B9%20%D0%BB%D1%83%D1%87%D1%88%D0%B8%D0%B9%20%D1%84%D0%BE%D1%80%D1%83%D0%BC%0A

Так не бывает...

как минимум должно быть так
Цитата

index.php?db=%D0%AD%D1%82%D0%BE%20%D1%81%D0%B0%D0%BC%D1%8B%D0%B9%20%D0%BB%D1%83%D1%87%D1%88%D0%B8%D0%B9%20%D1%84%D0%BE%D1%80%D1%83%D0%BC%0A

а лучше так конечно


Но вот чувствую что это бред... привязывать нужно к идентификатору, т.е. примерно так


А если используется ЧПУ то так



Это сообщение отредактировал(а) Gold Dragon - 16.3.2013, 18:06


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
lurnette
Дата 16.3.2013, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



я тут немного поковырялся, и вот что получилось:
Код

echo '<p><a href="http://localhost/phpmyadmin/index.php?db='. $row['description']. '" target="_blank">'. $row['title']. '</a></p>'; 


теперь при нажатии на ссылку открывается моя БД в phpMyAdmin и слева выводится содержимое нужной ячейки (правда, при этом он пытается найти таблицу в БД с таким названием). Так не пойдет, мне не нужно чтобы ссылка была в БД, я хочу, чтобы содержимое из БД выводилось.
PM MAIL   Вверх
Gold Dragon
Дата 17.3.2013, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

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



что за бред?  smile что должно открываться если нажать на ссылку?
Передавать описание через GET по меньшей мере очень глупо  при условии что есть ID

Передаёшь ID
Получаешь ID из GET
Делаешь запрос к базе, в условие ставишь ID
И получаешь описание


PS
пример какой-то очень древний или из очень старого "учебника"... 
Во-первых, всё в одной куче
Во-вторых, MySQL - уже устарел.. Используй или MySQLi ну или PDO


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




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


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

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