Имеется один файл index.php и имеется база данных mysql с одной таблицей artikles (поля: id, title, description, content) наполненная 10 статьями. Нужно что бы в файле index.php выводились данные одной определённой статьи (титле, дескрипшн и сама статья) в зависимости от запроса. То есть, id 1 – это главная. А запросы других страниц – sait.ru/index.php?id=2, sait.ru/index.php?id=3, sait.ru/index.php?id=4, sait.ru/index.php?id=5, sait.ru/index.php?id=6, sait.ru/index.php?id=7, sait.ru/index.php?id=8, sait.ru/index.php?id=9, sait.ru/index.php?id=10
Я знаю, что для того что бы такое организовать нужно прописать в index.php команду подключения к базе данных – это легко. Но после этого нужна команда по извлечению статьи из базы данных, но только не по определённому id, а по id, который запрашивается.
- 07.04.2015 14:51
- 07.04.2015 15:10Разработка любых сайтов

- Регистрация: 08.06.2011
- Сообщений: 3,375
- Записей в дневнике: 1
- Репутация: 2506
Получаете id страницы, которую нужно вывести, например $id = $_SERVER['REQUEST_URI'];
Затем делаете выборку из бд для нужно записи select * from artikles where id='$id'
Ну и в нужные места вставляете данные.
Это если по-простому.
П.С. проверяйте всегда поля, которые получаете. - 07.04.2015 16:18
Где надо написать - $id = $_SERVER['REQUEST_URI']; ?
Код ниже, который у меня
PHP код:<?php
$connection = mysql_connect("localhost", "Имя_пользователя", "Пароль");
$db = mysql_select_db("Имя_базы");
mysql_set_charset("utf-8");
if(!$connection || !$db)
{
exit(mysql_error());
}
$result = mysql_query(" SELECT * FROM articles WHERE id='$id' ");
mysql_close();
$row = mysql_fetch_array($result);
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<title><?php echo $row['title'];?></title>
<meta charset="utf-8">
<meta name="description" content="<?php echo $row['description'];?>" />
<meta name="keywords" content="<?php echo $row['keywords'];?>" />
</head>
<body>
Содержимое: <?php echo $row['content'];?>
</body>
</html> - 07.04.2015 17:20Студент

- Регистрация: 27.11.2011
- Сообщений: 54
- Репутация: 12
Игорь Парфёнов, вот тут:
PHP код:if(!$connection || !$db)
{
exit(mysql_error());
}
$id = intval($_GET['id']);
$result = mysql_query(" SELECT * FROM articles WHERE id='$id' ");
- 07.04.2015 17:25
music, после добавления $id = intval($_GET['id']); заработало как мне нужно, однако при обращении к главной sait.ru не показывается содержимое id1, а показывается оно так sait.ru/index.php?id=1. Как сделать, что бы по запросу sait.ru показывалось содержимое
- 07.04.2015 18:04Дипломник

- Регистрация: 06.06.2011
- Сообщений: 105
- Репутация: 11
if( isset( $_GET['id'] ) )
$id = intval($_GET['id']);
else
$id = 1 ; - 07.04.2015 19:00
Гениально, просто гениально! Работает! При запросе главной страницы отдаёт содержимое id1. Но имеется другая проблема. При запросе http://sait.ru/ (любое слово), например http://slovo.ru/slovo - отдаёт ошибку 404 (404 File not found.). Но при запросе http://sait.ru/index.php?id=11 (и выше) отдаёт статичное содержимое, то есть шаблон без контента, а должно отдавать ошибку 404, как в первом случае. У меня на сайте 10 страниц, а при запросе от /index.php?id=11 отдаётся статичное содержимое без контента
---------- Сообщение добавлено 19:00 ---------- Предыдущее 18:32 ----------
Получилось. Я создал ошибку 404 для несуществующего id. Надо вставить такой код:PHP код:if(mysql_num_rows($result)==0){
header('HTTP/1.1 404 Not Found');
header('Location: /404.php');
die();
}
Похожие темы
| Темы | Раздел | Ответов | Последний пост |
|---|---|---|---|
Что лучше для сайта - Динамическая страница или Статическая? | Общие вопросы поисковой оптимизации | 11 | 02.10.2014 22:07 |
Динамическая таблица | Web программирование | 3 | 25.03.2014 16:57 |
Скрипт комментариев CommentIt Ajax (Mysql + Без mysql) | Софт, скрипты, лицензии | 0 | 01.07.2012 00:59 |
Динамическая карта Google | Web программирование | 2 | 27.12.2011 15:29 |





