[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод страниц
m4a1fox
Доброго времени суток эксперты. Отдельный Привет inpost. ) Печенки еще не кончились? Ну да ладно.... Это все лирика, надеюсь поможете с логикой. Есть такая задумка... Прикиним, есть сайт. У сайта есть БД. В этой БД есть таблица а в ней страницы. Таблица небольшая... id, meta_d, meta_k, text, LINK. В link я вношу название ссылки (ну вот так я сделал, не знаю - правильно или нет). Как вывести страницу из БД) Ну в смысле, как вывести я знаю (отдельно спасибо опять же inpost и kovaldm)... Мне необходимо сделать страницу (общую - это как я понимаю) потом при $_GET[link] выводить страницы. Вроде так - но сам с логикой запутался, поэтому прошу помощи указать направление в котором капать!)



Спустя 3 минуты, 58 секунд (20.12.2010 - 18:47) kovaldm написал(а):
Ничего не понятно. У тебя в таблице готовая страница лежит? Если так, то просто выводи ее в браузер и все. А если только контент, то вставляй его в заранее подготовленный шаблон и тоже выводи.

Спустя 9 минут, 34 секунды (20.12.2010 - 18:56) m4a1fox написал(а):
Вот..... Шаблон.... Создам страницу.... При выводе
$ind = isset($_GET['link']) ? (integer)$_GET['link'] : 0;
$result = mysql_query("SELECT * FROM page WHERE link=" . $link) or die(mysql_error());


запрос по типу этого....?

Спустя 2 минуты, 48 секунд (20.12.2010 - 18:59) m4a1fox написал(а):
Вид страницы(примерно):
<?php
include ("admin/blocks/db.php");
$ind = isset($_GET['link']) ? (integer)$_GET['link'] : 0;
$result = mysql_query("SELECT * FROM page WHERE link=" . $link) or die(mysql_error());
if(!result)
{
echo '<Ups>';
exit(mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array($result);
}
else
{
echo 'Ошибка';
exit();
}
?>
<html>
<
head>
<
title><?php echo $myrow['title'];?></title>
<
meta name="description" content="<?php echo $myrow['meta_d'];?>">
<
meta name="keywords" content="<?php echo $myrow['meta_k'];?>">
</
head>
<
link href="style.css" rel="stylesheet" type="text/css">
<
body topMargin="0">
<
table border=0 width="900px" align="center" topMargin="0" cellpadding="0" cellspacing="0">

<?php
include 'blocks/head.php';
?>
<tr>
<
td COLSPAN=3>
<?php
include_once ("blocks/menu.php");
?>
</td>
</
tr>

<
tr height="900px">
<?php
include 'blocks/lefttd.php';
?>
<td width="500px" valign="top" style="padding-top: 20px;">
<?php
echo $myrow['text'];
?>
</td>
<?php
include 'blocks/righttd.php';
?>
</tr>

<?php
include 'blocks/bottom.php';
?>
</table>
</
body>
</
html>

Спустя 1 минута, 50 секунд (20.12.2010 - 19:01) kovaldm написал(а):
Зачем тебе два идентификатора в таблице? Тогда уж делай выборку по id. И по умолчаню сделай его, скажем, равным 1, тогда у тебя при отсутствии ссылки будет выводиться дефолтная страница.

Еще у тебя получается две проверки на отсутствие результата запроса.

Спустя 5 минут, 23 секунды (20.12.2010 - 19:06) m4a1fox написал(а):
Согласен... Проверки - две... Но это потом. Я хочу сделать следующее... Если я создам новость... прикиним в этой новости есть слово допустим - стол. И мне надо создать страницу про столы... Я ее создаю и заношу в таблицу данные meta_k, meta_d, text, link. В поле link - я пишу - stol.php. как потом прикрепить эту ссылку к слову стол в новости. Не создавать же страницу stol.php...

Спустя 15 минут, 30 секунд (20.12.2010 - 19:22) kovaldm написал(а):
Нет конечно. Обработчик должен быть один, а если пользователь ткнул по ссылке такого типа
Цитата
http://www.host.ru?link=stol
тогда уже обрабатываешь её и вытаскиваешь из БД то что нужно.

Цитата
как потом прикрепить эту ссылку к слову стол в новости

Сделать слово "стол" ссылкой.

Спустя 6 минут, 47 секунд (20.12.2010 - 19:29) m4a1fox написал(а):
Сделать ссылкой какого типа?
1. <a href="stol.php">стол</a>
2. <a href="http://www.host.ru?link=stol"> стол</a>

Спустя 2 минуты, 25 секунд (20.12.2010 - 19:31) kovaldm написал(а):
Тебе нужно будет обработать $_GET['link'], я правильно понимаю?
Какая должна быть ссылка?

Спустя 1 минута, 42 секунды (20.12.2010 - 19:33) m4a1fox написал(а):
Ну дык... вторая естественно...

Спустя 5 минут, 3 секунды (20.12.2010 - 19:38) kovaldm написал(а):
Остается исправить недостатки инициализации и проверки результата запроса.
И еще, вот здесь
..else 
{
echo 'Ошибка';
exit();
}
Вместо текста "ошибка" лучше выдавать 404 страницу.

Спустя 3 минуты, 55 секунд (20.12.2010 - 19:42) m4a1fox написал(а):
kovaldm
Еще раз извиняюсь..... Но все же.... А как тогда стандартно прописать ссылку http://www.host.ru?link= - что бы просто вставлять link.php и все? Может быть подскажете?

Спустя 5 минут, 54 секунды (20.12.2010 - 19:48) kovaldm написал(а):
А зачем вставлять link.php? Смысл этого "линка" не в том чтобы открыть/запустить link.php, а в том чтобы передать скрипту параметр, по которому будет происходить выборка из БД, а обработчик может находиться в любом файле.

Спустя 3 минуты (20.12.2010 - 19:51) m4a1fox написал(а):
Спасибо... разъяснили.... Это понял... Тогда повернем вопрос ребром. Как можно создать страницу в php автоматически... Что бы я внес в нее ссылку, потом скопировал ее и прицепил к слову?

Спустя 14 минут, 25 секунд (20.12.2010 - 20:05) kovaldm написал(а):
Не совсем понял вопрос.

У тебя страница и так создается "автоматически":
1. У тебя в БД хранятся несколько текстов.
2. Пользователь тыкает по ссылке <a href="http://www.host.ru?link=stol"> стол</a>.
3. Скрипт ищет значение "ссылки" БД и ыводит нужный текст в браузер, или ошибку, если такой "ссылки" в БД нет.

Или тебе нужно автоматически преобразовывать слова в ссылки?

Спустя 9 минут, 53 секунды (20.12.2010 - 20:15) m4a1fox написал(а):
Нет.... попробую объяснить... Я создал страницу... На странице в админке у меня 5 полей. 1 - title, 2 - meta_k, 3 - meta_d, 4 - text, 5 - link. Я их заполняю и у меня в БД в таблицу page заносятся эти данные. Как мне их вынуть и Привязать к определенному слову опять же стол.

Спустя 2 минуты, 15 секунд (20.12.2010 - 20:17) m4a1fox написал(а):
Во... объясню...... на примере картинок

Спустя 3 минуты, 43 секунды (20.12.2010 - 20:21) m4a1fox написал(а):
http://depositfiles.com/files/2a10lnkqh

Вот такая картинка, я беру ссылки и вставляю их в слово и оно как-то, я люблю булочки, работает?!


 ! 

М
Предупреждение за маты!
inpost

Спустя 11 минут, 40 секунд (20.12.2010 - 20:33) m4a1fox написал(а):
хм..... вроде мат не писал......

Спустя 4 минуты, 26 секунд (20.12.2010 - 20:37) inpost написал(а):
Смотри: $_SERVER[] - штатные переменные, в них все содержится, что тебе надо.

Спустя 3 минуты, 4 секунды (20.12.2010 - 20:40) m4a1fox написал(а):
inpost
Вот за что люблю твои объяснения- так за полноту высказанного.... Лады.... Спасибо конечно.... это я так.... мысли вслух!

Спустя 2 минуты, 25 секунд (20.12.2010 - 20:43) inpost написал(а):
Пропиши в скрипте:
echo '<pre>';
print_r($_SERVER);
exit();

И выбирай нужный.

Спустя 10 минут, 37 секунд (20.12.2010 - 20:53) m4a1fox написал(а):
ну походу $_SERVER[REQUEST_URI] - это мне надо.....Хм.......Будем думать?!

Спустя 22 минуты, 36 секунд (20.12.2010 - 21:16) inpost написал(а):
пробуй так, пробуй эдак! Ты ведь программист, не я =)

Спустя 3 часа, 23 минуты, 25 секунд (21.12.2010 - 00:39) m4a1fox написал(а):
inpost
) улыбнуло!

Спустя 3 минуты, 22 секунды (21.12.2010 - 00:43) inpost написал(а):
m4a1fox
Ну а что, уже почти 2 месяца на форуме, пора взрослеть!

Спустя 17 минут, 15 секунд (21.12.2010 - 01:00) m4a1fox написал(а):
ну так.... я вам благодарен безмерно..... пишите адрес печенки вам пришлю) а если серьезно... то как-та же эта проблема должна решаться....

Спустя 10 минут, 17 секунд (21.12.2010 - 01:10) kovaldm написал(а):
Я вот до сих пор не могу понять какая ссылка нужна, точнее на что она должна ссылаться.
(У меня сегодня перегруз мозга)

Спустя 5 минут, 57 секунд (21.12.2010 - 01:16) m4a1fox написал(а):
kovaldm
Если Вы не против, и у Вас есть время подробно все разложу на примерах... только конечно если у Вас есть время!

Спустя 16 минут, 37 секунд (21.12.2010 - 01:33) kovaldm написал(а):
Выкладывай конечно, если не сегодня, то завтра посмотрю. Или еще кто-нибудь поможет. smile.gif

Спустя 7 минут, 47 секунд (21.12.2010 - 01:40) m4a1fox написал(а):
kovaldmВот вы сделали сайт! У сайта 4 страницы. 1- новости(news.php), 2- О нас(about_us.php), 3- Услуги(uslugi.php), 4- Главная (index.php). Эти 4 страницы у вас есть. Через админку вы вносите в них изменения, редактируете записи и т.д. Но если Вам необходима еще одна страница где будет большой текст о столах. Ну допустим у вас есть новость где упоминается слово стол, и вы хотите что бы пользователь больше узал о столах делаете ее ссылкой. В базе вы можете создать и занести запись в таблицу где будет текст о столах. И вот вопрос - как создать страницу которая будет ссылкой и которая будет находится в БД. Вот как - то так. Или может вы опишите пример из своей практики, как вы делали какую-либо админку...

Спустя 1 минута, 58 секунд (21.12.2010 - 01:42) inpost написал(а):
страница будет ссылкой?

Спустя 3 минуты, 30 секунд (21.12.2010 - 01:46) m4a1fox написал(а):
нет наверно.... не уверен.... в БД можно занести ссылку ввиде link.php?

Спустя 3 минуты, 13 секунд (21.12.2010 - 01:49) inpost написал(а):
почему нет... Просто сделай ХТМЛ, выложи на сервак =( Ато я с каждой минутой меньше и меньше понимаю, что ты хочешь... я сначала думал, что тебе надо из link.php превратить в http://site.ru/link.php (то есть сделать полный путь)

Спустя 6 минут, 23 секунды (21.12.2010 - 01:56) m4a1fox написал(а):
inpost
Черт, так не объяснить... Вы видели картинку что я прислал ранее... вот ссылка...глянь пожалуйста, а я потом объясню....

Спустя 4 минуты, 6 секунд (21.12.2010 - 02:00) inpost написал(а):
m4a1fox
Выстави на форуме, я принцыпиально ничего не качаю =)

Спустя 2 минуты, 32 секунды (21.12.2010 - 02:02) m4a1fox написал(а):
Да..... извиняюсь вот user posted image

Спустя 2 минуты, 38 секунд (21.12.2010 - 02:05) m4a1fox написал(а):
Вот. Допустим страница - телечат. Ее я создаю вручную, прописываю ссылку - telechat и потом могу ее вставить в любой документ и у меня откроется, ну наверное из базы берется значение в выводится страница кот. я создал в данном случае это страница ТЕЛЕЧАТ!

Спустя 5 минут, 1 секунда (21.12.2010 - 02:10) inpost написал(а):
index.php?page=telechat
...
mysql_query("SELECT * FROM table WHERE linke='".$_GET['page']."'");
...
echo $row['text'];

На новой странице вывелся текст страницы телечата... что ещё?

Спустя 1 минута, 23 секунды (21.12.2010 - 02:11) inpost написал(а):
ссылки давать как index.php?page=ИМЯ

Спустя 1 минута, 34 секунды (21.12.2010 - 02:13) inpost написал(а):
Или я опять не о том?! =(((

Спустя 1 минута, 3 секунды (21.12.2010 - 02:14) m4a1fox написал(а):
ну наверно да....

Спустя 2 минуты, 48 секунд (21.12.2010 - 02:17) m4a1fox написал(а):
Значит я делаю файл и называю его link.php. Эта страница будет отвечать за вывод других страниц. А ссылка на нее будет выглядеть так. a href="link.php?page=ссылка из БД". Так ведь?

Спустя 1 минута, 5 секунд (21.12.2010 - 02:18) inpost написал(а):
что-то вроде того.

Спустя 14 минут, 18 секунд (21.12.2010 - 02:32) m4a1fox написал(а):
Ясно... пробуем.....

Спустя 13 минут, 1 секунда (21.12.2010 - 02:45) m4a1fox написал(а):
Гляньте, этот запрос как?
<?php
include ("admin/blocks/db.php");
$ind = isset($_GET['link']) ? $_GET['link'] : 0;
$result = mysql_query("SELECT * FROM page WHERE link=".$ind) or die(mysql_error());
if(!result)
{
echo '<Ups>';
exit(mysql_error());
}
if (mysql_num_rows($result) > 0)
{
$myrow = mysql_fetch_array($result);
}
else
{
echo 'Ошибка';
exit();
}
?>
<html>
<
head>
<
title><?php echo $myrow['title'];?></title>
<
meta name="description" content="<?php echo $myrow['meta_d'];?>">
<
meta name="keywords" content="<?php echo $myrow['meta_k'];?>">
</
head>
<
link href="style.css" rel="stylesheet" type="text/css">
<
body topMargin="0">
<
table border=0 width="900px" align="center" topMargin="0" cellpadding="0" cellspacing="0">

<?php
include 'blocks/head.php';
?>
<tr>
<
td COLSPAN=3>
<?php
include_once ("blocks/menu.php");
?>
</td>
</
tr>

<
tr height="900px">
<?php
include 'blocks/lefttd.php';
?>
<td width="500px" valign="top" style="padding-top: 20px;">
<?php
echo $myrow['text'];
?>
</td>
<?php
include 'blocks/righttd.php';
?>
</tr>

<?php
include 'blocks/bottom.php';
?>
</table>
</
body>
</
html>

Спустя 8 часов, 36 минут, 40 секунд (21.12.2010 - 11:22) kovaldm написал(а):
В общем мы вернулись к тому, с чего начинали. С логикой здесь все в порядке, нужно только изменить то о чем я говорил в начале темы.

Спустя 32 минуты, 28 секунд (21.12.2010 - 11:54) m4a1fox написал(а):
да да.... изменил.... Все работает! Спасибо всем
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.