Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод данных одним файлом index.php
 
 автор: Shadow69   (03.07.2006 в 14:30)   письмо автору
 
 

Друзья!

Есть вот такой код:

<?
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), но как это сделать не знаю.

Помогите советом.
Заранее спасибо.

   
 
 автор: himic   (03.07.2006 в 15:07)   письмо автору
 
   для: Shadow69   (03.07.2006 в 14:30)
 

код не читал
посмотри если ИД (if(isset($_GET['id_article']))) пуста то выводи список тем если нет то не выводи

   
 
 автор: Shadow69   (03.07.2006 в 15:40)   письмо автору
 
   для: himic   (03.07.2006 в 15:07)
 

himic, Так и есть.

   
 
 автор: Shadow69   (04.07.2006 в 09:16)   письмо автору
 
   для: Shadow69   (03.07.2006 в 15:40)
 

И может быть кто-нибудь знает, как уменьшить код. Имеется ввиду, чтобы два раза не вызывать дескриптор mysql_query()?

   
 
 автор: Snorri   (04.07.2006 в 09:35)   письмо автору
 
   для: Shadow69   (04.07.2006 в 09:16)
 

Привет.
Так ты два раза и не обращайся к базе
// если id_article установлен и является числом 
if ( isset($_GET['id_articles']) && is_numeric($_GET['id_articles'])) 
{
выводишь статью
}
elseif(еще условие)
{
выводишь что там нужно
}
elseif(очередное условие)
 ...
else
{
}

   
 
 автор: Shadow69   (05.07.2006 в 08:04)   письмо автору
 
   для: 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 (!
$artputerror("Ошибка при обращении к разделу ПУБЛИКАЦИИ");
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 (!
$artputerror("Ошибка при обращении к разделу ПУБЛИКАЦИИ");
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), но как это сделать не знаю.

Ну, а как мне сделать запуск страницы из самой себя?

   
 
 автор: куч1963   (05.07.2006 в 09:49)   письмо автору
 
   для: 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 и потому проходит весь нижележащий код, тебе нужно поставить скобку внизу всего блока, который должен выводится .

   
 
 автор: Shadow69   (05.07.2006 в 13:23)   письмо автору
 
   для: куч1963   (05.07.2006 в 09:49)
 

куч1963
Спасибо дружище, выручил.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования