Вывод контента страниц из БД

Статус
В этой теме нельзя размещать новые ответы.

rasandrey

Участник
Регистрация
2 Апр 2009
Сообщения
214
Реакции
6
Помогите, плиз, разобратьс в таком вопросе:
есть БД с 1 таблицей, в которой 3 поля: "id,name,content" - ИД записи, название пункта меню и содержание пункта меню.

Тепрь у меня есть код:

Код:
<?php
require ("config.php");

mysql_connect(DB_HOST, DB_USER, DB_PASS) or die (mysql_error());
mysql_select_db(DB_NAME) or die (mysql_error());


$q = mysql_query("select * from pages");
echo "<ul><li><a href=\"/\">Главная</li>";
for ($i = 0; $i<mysql_num_rows($q); $i++)

{
$q2 = mysql_fetch_array($q);
echo "<li><a href=\"index.php?id=".$q2[id]."\">".$q2[name]."</a></li>";
}
echo "</ul>";


?>

Который выводит из БД все поля и формирует ссылку по типу
Код:
<a href="index.php?id=Ид нашего пунта меню">Имя пункта меню</a>

По нажатию на определенный пункт меню мне нужно отображать содержание соответствующей записи content из БД, но не соображу как. :nezn:
 
PHP:
<?php
require ("config.php");
$content_id = isset($_GET['id'])?$_GET['id']:0;
$content = "";

mysql_connect(DB_HOST, DB_USER, DB_PASS) or die (mysql_error());
mysql_select_db(DB_NAME) or die (mysql_error());

$res = mysql_query("select * from pages");
echo "<ul><li><a href=\"/\">Главная</li>";
while ($row = mysql_fetch_assoc($res)) {
	echo "<li><a href=\"index.php?id=".$row['id']."\">".$row['name']."</a></li>";
	if ($content_id == $row['id']) {
		$content = $row['content'];
	}
}
echo "</ul>";

if (strlen($content)) {
	echo $content;
}

?>
 
PHP:
<?php
require ("config.php");
$content_id = isset($_GET['id'])?$_GET['id']:0;
$content = "";
mysql_connect(DB_HOST, DB_USER, DB_PASS) or die (mysql_error());
mysql_select_db(DB_NAME) or die (mysql_error());
$res = mysql_query("select * from pages");
echo "<ul><li><a href=\"/\">Главная</li>";
while ($row = mysql_fetch_assoc($res)) {
	echo "<li><a href=\"index.php?id=".$row['id']."\">".$row['name']."</a></li>";
	if ($content_id == $row['id']) {
		$content = $row['content'];
	}
}
echo "</ul>";
if (strlen($content)) {
	echo $content;
}
?>

спасибо, все ок, а можете объяснить несколько моментов?

1) какое значение формирует эта строка или она просто получает текущий id страницы?
$content_id = isset($_GET['id'])?$_GET['id']:0;

почему не так: $content_id = $_GET['id']; ?

2) зачем идет проверка?
if (strlen($content))
 
PHP:
$content_id = isset($_GET['id'])?$_GET['id']:0;
isset($_GET['id']) проверяет существование значения в массиве $_GET с идексом 'id', если такое значение существует, то мы присваиваем его переменной, в противном случае инициализируем переменную со значением 0. если использовать предложеную вами конструкцию
PHP:
$content_id = $_GET['id'];
тогда скрипт будет выдавать предпреждение, что переменной $_GET['id'] не существует, пока в строке запроса не будет передан параметр 'id'.

PHP:
if (strlen($content))
проверка сделана для определения, стоит ли нам выводить значение переменной или нет :)
 
1) это тоже самое что и
PHP:
if(isset($_GET['id']))
{
    $content_id = $_GET['id'];
}
else
{
    $content_id = 0;
}
2) это видимо для проверки есть ли что-то в переменной $content,
хотя можно проверить на пустоту можно и так:
PHP:
if(!empty($content))
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху