|
|
|
| Пишу cmsку на php вместе с mysql, но главной своей функции она у меня не выполняет: не могу сделать так, чтобы пользователь мог добавлять новые разделы сайта - страницы соответственно. Как php генерирует страницы по ссылкам с соответствующим наполнением по одному шаблону дизайна? Ссылки формируются по id записи таблицы в базе данных, имеют вид http://www.praktik.ru/index.php?page=1, у каждого id есть свой контент, который должен быть на очередной странице. | |
|
|
|
|
|
|
|
для: Treat
(12.08.2008 в 14:50)
| | | |
|
|
|
|
|
|
|
для: BinLaden
(12.08.2008 в 14:55)
| | надеюсь в то место поставлю... | |
|
|
|
|
|
|
|
для: Treat
(12.08.2008 в 15:01)
| | Это можно что разве в тестовый файл поставить. Вам нужно брать параметры вроде идентификатора из массива $_GET и потом уже выбрать из БД данные в соответсвии с этим id. | |
|
|
|
|
|
|
|
для: BinLaden
(12.08.2008 в 15:02)
| | Вот это у меня выводит меню:
function menu()
{
include('php/connectdb.php');
$result=mysql_query("SELECT id,title FROM content");
while (($a=mysql_fetch_array($result))==True)
{echo ("· "."<a href='index.php?page=".$a['id']."'>".$a['title']."</a><br>");
}
mysql_close();
}
|
ссылки формируются, а дальше я пока не пойму. | |
|
|
|
|
|
|
|
для: Treat
(12.08.2008 в 15:04)
| | Вы знаете как не следующей странице получить этот параметр (page)?
Вы знаете как составить SQL-запрос на выборку определенных данных из БД для этого идентификатора, который почему-то в переменной под именем page?
P.S. Надо один раз подключится, а не перед каждым запросом разрывать и создавать новое подключение. | |
|
|
|
|
|
|
|
для: BinLaden
(12.08.2008 в 15:08)
| | У меня кроме главной страницы вообще никакая больше страница не получается, sql-запросы вроде знаю. Я сделала главную страницу, на которой есть оформление, меню и главный текст у меня будут подключаться через функции
<? require("func.php"); ?>
<?php menu(); ?>
<?php text(); ?>
|
изначально я их написала как func.php
<?php
function menu()
{
include('php/connectdb.php');
$result=mysql_query("SELECT id,title FROM content");
while (($a=mysql_fetch_array($result))==True)
{echo ("· "."<a href='?page=".$a['id']."'>".$a['title']."</a><br>");
}
mysql_close();
}
function text()
{
include('php/connectdb.php');
$result=mysql_query("SELECT title,text FROM main");
while (($a=mysql_fetch_array($result))==True)
{echo ("<div id='f1'>".$a['title']."</div><div id='f2'>".$a['text']."</div><br>");
}
mysql_close();
}
?>
|
| |
|
|
|
|
|
|
|
для: Treat
(12.08.2008 в 15:15)
| | Вам лучше вынести соединения с БД за пределы функций:
<?php
require("func.php");
include('php/connectdb.php');
menu();
text();
?>
|
<?php
function menu()
{
$result=mysql_query("SELECT id,title FROM content");
while ($a=mysql_fetch_assoc($result))
{
echo ("· "."<a href='?page=".$a['id']."'>".htmlspecialchars($a['title'])."</a><br>");
}
}
function text()
{
$result=mysql_query("SELECT title,text FROM main");
while ($a=mysql_fetch_assoc($result))
{
echo ("<div id='f1'>".htmlspecialchars($a['title'])."</div><div id='f2'>".htmlspecialchars($a['text'])."</div><br>");
}
}
?>
|
Хотя если эти функции вызываются один лишь раз, то их использование не оправдано.
Даале Вам лучше создать другой PHP-файл, чтобы было проще и, соответственно, поменять ссылки. | |
|
|
|
|
|
|
|
для: BinLaden
(12.08.2008 в 15:27)
| | Исправила, спасибо :)
Как сделать чтобы одной странице соответствовала одна запись текста из таблицы? | |
|
|
|
|
|
|
|
для: Treat
(12.08.2008 в 15:38)
| | в функции text() дополнить запрос, чтоб получилось так:
"SELECT title,text FROM main where id = " . $_GET['page']
или вроде того, в соответствии со структурой таблицы main
зы. про уязвимости прошу сейчас не начинать).. | |
|
|
|
|
|
|
|
для: mechanic
(12.08.2008 в 16:08)
| | > зы. про уязвимости прошу сейчас не начинать)..
Почему? Вам так трудно добавить хотя бы intval()? | |
|
|
|
|
|
|
|
для: BinLaden
(12.08.2008 в 16:10)
| | нет | |
|
|
|
|
|
|
|
для: Treat
(12.08.2008 в 15:38)
| |
<?php
$id = isset($_GET['id']) ? (int) $_GET['id'] : 0;
$query = "SELECT ... FROM ... WHERE `id` = {$id};";
mysql_query($query) or die("Error while executing '" . htmlspecialchars($query) . "': " . htmlspecialchars(mysql_error());
# ...
|
| |
|
|
|
|
|
|
|
для: BinLaden
(12.08.2008 в 16:10)
| | А если все данные сразу хранятся в одной таблице content, где есть id, title и text. как вывести каждую позицию text через какждую новую ссылку?
Извините, что я так плохо все понимаю, просто купила несколько книг, прочитала, а эта проблема нигде не освещается, вот и приходится искать и самой додумывать. | |
|
|
|
|
|
|
|
для: Treat
(12.08.2008 в 16:43)
| | Не совсем понимаю, что Вы хотите. Но, возможно, это:
<?php
for( $p = 1; $a=mysql_fetch_assoc($result); $p++ )
{
echo ("<div id='f1'>{$p}) ".htmlspecialchars($a['title'])."</div><div id='f2'>".htmlspecialchars($a['text'])."</div><br>");
}
?>
|
Это надо заменить в функции text() | |
|
|
|
|
|
|
|
для: BinLaden
(12.08.2008 в 17:21)
| | я потом эту функцию добавлю своей cms, чтобы она создавала новую страницу с наполнением пользователя, со ссылкой очередного id. | |
|
|
|