[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с id(*)
fatboy
Что я делаю не правильно? Раньше у меня был каждый пункт меню в отдельном файле, и я решил все объеденить в один index.php. Идея такая, сделать чтобы навигация по страницам была такая index.php?page=main или index.php?page=about. Для этого я в начале страницы пишу:
PHP
if(isset($_GET['page'])) {$page $_GET['page'];}
if(!isset(
$page)) {$page "main";}

и далее уже где должен быть код каждой страницы пишу (тут написал в краткости):
PHP
if($page == main)
{
$result_mainposts mysql_query("SELECT id,title,categories,author,date,description,view FROM posts WHERE main='1'"$bd);
$myrow_mainposts mysql_fetch_array($result_mainposts);
do
{
printf ("...",...);
}
while(*);
}

if(
$page == about)
{
//Обо мне
}


Далее пробую зайти на index.php?page=about и index.php?page=main и просто тупо стоит и не меняется первый IF... Помогите с такой задачей если не сложно...



Спустя 7 минут, 14 секунд (28.06.2009 - 08:37) glock18 написал(а):
PHP
if($page == main)

кавычечки не забыли?


PHP
if(isset($_GET['page'])) {$page $_GET['page'];}
if(!isset(
$page)) {$page "main";}


вот это слишком расписано. лучше так

PHP
$page = isset($_GET['page']) ? $_GET['page'] : 'main';

Спустя 26 минут, 56 секунд (28.06.2009 - 09:04) Kuliev написал(а):
fatboy
Не используй do он здесь не к чему!!!
Используй просто
PHP
while($myrow_mainposts mysql_fetch_array($result_mainposts))
{


}

Спустя 21 минута, 51 секунда (28.06.2009 - 09:25) fatboy написал(а):
Да нечайно опечатался а изменить нельзя...

Спустя 4 минуты, 12 секунд (28.06.2009 - 09:30) fatboy написал(а):
Цитата (Kuliev @ 28.06.2009 - 06:04)
fatboy
PHP
while($myrow_mainposts = mysql_fetch_array($result_mainposts))
{


}

Так незнаю почему но выводится только 1 последняя новость...

Спустя 4 минуты, 24 секунды (28.06.2009 - 09:34) freed-master написал(а):
А как именно выводится? Всмысле каким кодом?

Спустя 6 минут, 29 секунд (28.06.2009 - 09:40) fatboy написал(а):
Весь код:
PHP
<?php 
if($page == main)
{
$result_mainposts mysql_query("SELECT id,title,categories,author,date,description,view FROM posts WHERE main='1'"$bd);
$myrow_mainposts mysql_fetch_array($result_mainposts);
do
{
printf ("<div class=\"base\">
<div class=\"bheading\"><div><div><div><div><div>
<span>Категория: %s</a></span>
<h1><a href=\"#\">%s</a> </h1>
</div></div></div></div></div></div>
<div class=\"bbr_mid\"><div class=\"bbr_mid\">
<div class=\"maincont\">
<div class=\"infostore\">
<div class=\"isicons\">
<span></span>
<span></span>
</div>
<span class=\"arg\"><img class=\"si_author\" src=\"templates/images/spacer.gif\">Автор записи: %s</span>
<span class=\"arg\"><img src=\"templates/images/spaceinfo.gif\"></span>
<span class=\"arg\"><img class=\"si_date\" src=\"templates/images/spacer.gif\">Дата: %s</span>
<div class=\"clr\"></div>
</div>
<div class=\"indents\"><p>%s</p></div>
<div class=\"clr\"></div>
      
</div>
</div></div>
<div class=\"morelink\"><div class=\"ml\"><div class=\"ml\">
<span class=\"argmore\"><a href=\"#\"><strong>Подробнее</strong></a></span>
<span class=\"arg\"><img class=\"ml_views\" src=\"templates/images/spacer.gif\">Просмотров: %s</span>
</div></div></div></div>"
,
 
$myrow_mainposts['categories'],$myrow_mainposts['title'],$myrow_mainposts['author'],
$myrow_mainposts['date'],$myrow_mainposts['description'],$myrow_mainposts['view']);
}
while(
$myrow_mainposts mysql_fetch_array($result_mainposts));
}

Спустя 30 минут, 48 секунд (28.06.2009 - 10:11) fatboy написал(а):
Все спасибо я решил проблему...

Спустя 5 минут, 16 секунд (28.06.2009 - 10:17) Kuliev написал(а):
fatboy
Вы случайно не по курсам Е.Попова учитесь?

Теперь по коду, судя из запроса Вам должна вернуться одна строчка, а рас так то незачем городить цикл, можно сделать так:
PHP
if($page == "main")
{
    
$sql = ("SELECT `id`,`title`,`categories`,`author`,`date`,`description`,`view` 
             FROM `posts` 
             WHERE `main` = '1'"
);
             
    
$result mysql_query($sql) or die (mysql_error() ."<br>"$sql);
    
    
$row mysql_fetch_assoc($result);

echo 
"<div class=\"base\">
<div class=\"bheading\"><div><div><div><div><div>
<span>Категория: "
.$row['categories']."</a></span>
<h1><a href=\"#\">"
.$row['title']."</a> </h1>
</div></div></div></div></div></div>
<div class=\"bbr_mid\"><div class=\"bbr_mid\">
<div class=\"maincont\">
<div class=\"infostore\">
<div class=\"isicons\">
<span></span>
<span></span>
</div>
<span class=\"arg\">
<img class=\"si_author\" src=\"templates/images/spacer.gif\">Автор записи: "
.$row['autor']."</span>
<span class=\"arg\">
<img src=\"templates/images/spaceinfo.gif\"></span>
<span class=\"arg\">
<img class=\"si_date\" src=\"templates/images/spacer.gif\">Дата: "
.$row['date']."</span>
<div class=\"clr\">
</div>
</div>
<div class=\"indents\"><p>"
.$row['description']."</p>
</div>
<div class=\"clr\">
</div>
</div>
</div></div>
<div class=\"morelink\"><div class=\"ml\"><div class=\"ml\">
<span class=\"argmore\"><a href=\"#\"><strong>Подробнее</strong></a></span>
<span class=\"arg\">
<img class=\"ml_views\" src=\"templates/images/spacer.gif\">Просмотров: "
.$row['view']."</span>
</div></div></div></div>"
,



Спустя 40 минут (28.06.2009 - 10:57) fatboy написал(а):
Я скажу так. Именно цикл мне и нужен, чтобы выводить новости на главную.

Вот еще вопрос. Есть код:
Код
if($page == main) {
echo "Главная";
} elseif($page == about) {
echo "Обо мне";
}

и работает нормально. Теперь такая труднасть. Хочу выводить категории тоже через index.php и чтобы выглядело так index.php?cat=id. Я попытался добавить код:
Код
if($page == main) {
echo "Главная";
} elseif($page == about) {
echo "Обо мне";
} elseif(isset($cat)) {
База (выводи все новости где id категории равен $cat)
Цикл...
}

но почемуто это не работает и новости выводятся все подряд. В чем тут проблема не подскажете?

Спустя 19 минут, 41 секунда (28.06.2009 - 11:16) freed-master написал(а):
А не проще присвоить значение $cat той же $page?

Спустя 8 минут, 58 секунд (28.06.2009 - 11:25) fatboy написал(а):
Можете примерно описать ход действий, а то я пока новичек и чтото не немного не доганяю...

Спустя 12 минут, 31 секунда (28.06.2009 - 11:38) freed-master написал(а):
Та не, тут все просто. Передавать GET-ом id каталога не так index.php?cat=id, а так index.php?page=id.

Т.е. использовать ту же переменную, тогда вывод будет примерно такоейже:
PHP
if($page == main
{
  echo 
"Главная";
}
elseif(
$page == about
{
  echo 
"Обо мне";
}
elseif(
$page == id
{
  
// База (выводи все новости где id категории равен $page)
  // Цикл...
}

Спустя 2 часа, 46 минут, 14 секунд (28.06.2009 - 14:24) glock18 написал(а):
Kuliev
думаю, что да... по Попову smile.gif do-while везде, где ни поподя - его почерк smile.gif особенно, учитывая, что цикл в реале имеет преимущество перед другими в очень и очень маленьком количестве случаев, а в других гораздо хуже в плане читаемости.

Спустя 9 месяцев, 18 дней, 3 минуты, 21 секунда (16.04.2010 - 14:27) Гость_Павел написал(а):
Я думаю так проще всего:

$page = $_GET['page'];
$page = ( $page == '' ) ? 'main' : $page;
switch ( $page ) {
case ( 'main' ):
// здесь хоть include, хоть mysql_query, хоть просто echo "Hello";
break;

case ( 'about' ):
//
break;

case ( 'feedback' ):
//
break;

default:
// здесть, если введено что-то типа /index.php?page=ghjfdjghjkfd
// page not found 404

break;
}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.