|
|
|
| Друзья!
Есть вот такой код:
<?
require_once("config.php");
if(!preg_match("|^[\d]*$|",$_GET['id_article'])) puterror("Ошибка при обращении к разделу ПУБЛИКАЦИИ");
if(isset($_GET['id_article']))
{
$query = "SELECT * FROM article WHERE hide='show' AND id_article=".$_GET['id_article'];
$art = mysql_query($query);
if (!$art) puterror("Ошибка при обращении к разделу ПУБЛИКАЦИИ");
if(mysql_num_rows($art) > 0)
{
echo "<TABLE cellSpacing=0 cellPadding=0 width=100% border=0><TBODY>";
while($article = mysql_fetch_array($art))
{
echo "<TR>
<TD><H2>".$article['title_article']."</H2>Автор: ".$article['author_article']."<BR>Газета ".$article['istochnik_info']." № ".$article['number_info']." от ".$article['putdate_format']."<BR><BR>".$article['body_article']."</TD></TR>";
}
echo "</TBODY></TABLE>";
}
}
else
{
$query = "SELECT id_article,
title_article,
author_article,
istochnik_info,
number_info,
DATE_FORMAT(putdate,'%d.%m.%Y') as putdate_format,
hide
FROM article
WHERE hide='show' AND putdate <= NOW()
ORDER BY putdate DESC";
}
$art = mysql_query($query);
if (!$art) puterror("Ошибка при обращении к разделу ПУБЛИКАЦИИ");
if(mysql_num_rows($art) > 0)
{
echo "<TABLE cellSpacing=0 cellPadding=0 width=100% border=0><TBODY>";
while($article = mysql_fetch_array($art))
{
echo "<TR>
<TD>".$article['putdate_format'].", <A href=$_SERVER[PHP_SELF]?id_article=".$article['id_article'].">".$article['title_article']."</A>, ".$article['author_article'].", ".$article['istochnik_info']." № ".$article['number_info']."</TD></TR>";
}
echo "</TBODY></TABLE>";
}
?>
Это код выполняет следующие функции: выводит список всех имеющих в базе данных статей. Например,
3.06.2006, [url]Наводнение убивает жителей Крыма[/url], А. Гамов, газета "МК", № 1256
2.06.2006, [url]При получении взятки задержаны два сотрудника Госстройнадзора[/url] , А. Гамов, газета "МК", № 1257
и т.д.
При вводе в адресной строке: http://yyy.ru/index.php?id_article=2, или нажатие на гипперссылку, должна выводится соответсвующая статья. Так оно и есть, только в конце статьи выводится ещё раз название статьи. Как я понимаю страницу нужно перезагружать (т.к. выводится всё с одного файла index.php), но как это сделать не знаю.
Помогите советом.
Заранее спасибо. | |
|
|
|
|
|
|
|
для: Shadow69
(03.07.2006 в 14:30)
| | код не читал
посмотри если ИД (if(isset($_GET['id_article']))) пуста то выводи список тем если нет то не выводи | |
|
|
|
|
|
|
|
для: himic
(03.07.2006 в 15:07)
| | himic, Так и есть. | |
|
|
|
|
|
|
|
для: Shadow69
(03.07.2006 в 15:40)
| | И может быть кто-нибудь знает, как уменьшить код. Имеется ввиду, чтобы два раза не вызывать дескриптор mysql_query()? | |
|
|
|
|
|
|
|
для: Shadow69
(04.07.2006 в 09:16)
| | Привет.
Так ты два раза и не обращайся к базе
// если id_article установлен и является числом
if ( isset($_GET['id_articles']) && is_numeric($_GET['id_articles']))
{
выводишь статью
}
elseif(еще условие)
{
выводишь что там нужно
}
elseif(очередное условие)
...
else
{
}
|
| |
|
|
|
|
|
|
|
для: Snorri
(04.07.2006 в 09:35)
| |
<?
require_once("config.php");
if(!preg_match("|^[\d]*$|",$_GET['id_article'])) puterror("Ошибка при обращении к разделу ПУБЛИКАЦИИ");
if(isset($_GET['id_article']))
{
$query = "SELECT * FROM article WHERE hide='show' AND id_article=".$_GET['id_article'];
$art = mysql_query($query);
if (!$art) puterror("Ошибка при обращении к разделу ПУБЛИКАЦИИ");
if(mysql_num_rows($art) > 0)
{
echo "<TABLE cellSpacing=0 cellPadding=0 width=100% border=0><TBODY>";
while($article = mysql_fetch_array($art))
{
echo "<TR>
<TD><H2>".$article['title_article']."</H2>Автор: ".$article['author_article']."<BR>Газета ".$article['istochnik_info']." № ".$article['number_info']." от ".$article['putdate_format']."<BR><BR>".$article['body_article']."</TD></TR>";
}
echo "</TBODY></TABLE>";
}
}
else
{
$query = "SELECT id_article,
title_article,
author_article,
istochnik_info,
number_info,
DATE_FORMAT(putdate,'%d.%m.%Y') as putdate_format,
hide
FROM article
WHERE hide='show' AND putdate <= NOW()
ORDER BY putdate DESC";
}
$art = mysql_query($query);
if (!$art) puterror("Ошибка при обращении к разделу ПУБЛИКАЦИИ");
if(mysql_num_rows($art) > 0)
{
echo "<TABLE cellSpacing=0 cellPadding=0 width=100% border=0><TBODY>";
while($article = mysql_fetch_array($art))
{
echo "<TR>
<TD>".$article['putdate_format'].", <A href=$_SERVER[PHP_SELF]?id_article=".$article['id_article'].">".$article['title_article']."</A>, ".$article['author_article'].", ".$article['istochnik_info']." № ".$article['number_info']."</TD></TR>";
}
echo "</TBODY></TABLE>";
}
?>
|
Это код выполняет следующие функции: выводит список всех имеющих в базе данных статей. Например,
3.06.2006, [url]Наводнение убивает жителей Крыма[/url], А. Гамов, газета "МК", № 1256
2.06.2006, [url]При получении взятки задержаны два сотрудника Госстройнадзора[/url] , А. Гамов, газета "МК", № 1257
и т.д.
При вводе в адресной строке: http://yyy.ru/index.php?id_article=2, или нажатие на гипперссылку, должна выводится соответсвующая статья. Так оно и есть, только в конце статьи выводится ещё раз название статьи. Как я понимаю страницу нужно перезагружать (т.к. выводится всё с одного файла index.php), но как это сделать не знаю.
Ну, а как мне сделать запуск страницы из самой себя? | |
|
|
|
|
|
|
|
для: Shadow69
(05.07.2006 в 08:04)
| |
else
{
$query = "SELECT id_article,
title_article,
author_article,
istochnik_info,
number_info,
DATE_FORMAT(putdate,'%d.%m.%Y') as putdate_format,
hide
FROM article
WHERE hide='show' AND putdate <= NOW()
ORDER BY putdate DESC";
} // Скобка , каторая закрывает else, потому код ниже проходит
$art = mysql_query($query);
if (!$art) puterror("Ошибка при обращении к разделу ПУБЛИКАЦИИ");
if(mysql_num_rows($art) > 0)
{
echo "<TABLE cellSpacing=0 cellPadding=0 width=100% border=0><TBODY>";
while($article = mysql_fetch_array($art))
{
echo "<TR>
<TD>".$article['putdate_format'].", <A href=$_SERVER[PHP_SELF]?id_article=".$article['id_article'].">".$article['title_article']."</A>, ".$article['author_article'].", ".$article['istochnik_info']." № ".$article['number_info']."</TD></TR>";
}
echo "</TBODY></TABLE>";
}
// то есть тут }
|
Ты закрываеш else и потому проходит весь нижележащий код, тебе нужно поставить скобку внизу всего блока, который должен выводится . | |
|
|
|
|
|
|
|
для: куч1963
(05.07.2006 в 09:49)
| | куч1963
Спасибо дружище, выручил. | |
|
|
|