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

Форум MySQL

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

 

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

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

тема: вывод из БД
 
 автор: FaStY   (15.02.2006 в 12:09)   письмо автору
 
 

вот прикрепил файл вывода из бд. Вообще я хочу сделать, чтобы показывало сколько всего сообщений в main_forum(категории форума). Вот структура базы:
main_forum:(категория форумов)
-id;
-name;
name_forum:(форумы)
-id_forum;
-name;
-id_main_forum;
themes:(топики)
id_theme;
-name;
id_forum;
posts:(сообщения)
id_post;
-name;
id_theme;
базы main_forum И name_forum связываются по id и id_main_forum
базы themes и name_forum связываются по id_forum
базы posts и themes связываются по id_theme.
При запросе, как показано в атаче, у меня вроде все показывает, но если в main_forum(категории форума) нету ни одного name_forum(форума), то у меня пишет ошибку, что не может подключится к базе, и тоже самое если в name_forum нету ни одной темы. ПОдскажите как это исправить.
2)И может как-нить можно укоротить этот запрос?

   
 
 автор: Loki   (15.02.2006 в 13:15)   письмо автору
 
   для: FaStY   (15.02.2006 в 12:09)
 

Так а зачем его укорачивать? надо просто ввести проверку что результат не равен NULL (это если я тот запрос посмотрел). В противном случае - указывать ноль.
И по поводу ошибки не очень понял.

   
 
 автор: FaStY   (15.02.2006 в 13:56)   письмо автору
 
   для: Loki   (15.02.2006 в 13:15)
 

а можно на примере показать? ато чет у меня не получается :( желательно на моем запросе:
Чтобы если нету форумов или тем в категории, то кол-во ответов равно нулю. Я пробовал так:

<?php
if($row_theme[id_theme] !== NULL{
$otvetov 0
}

?>

не получилось, может я не так Null пишу?

   
 
 автор: Loki   (15.02.2006 в 15:28)   письмо автору
 
   для: FaStY   (15.02.2006 в 13:56)
 

Попробуйте вывести

print_r($row_theme);

в случае, который вызывает ошибку, а то мне даже код запустить не на чем.

   
 
 автор: FaStY   (15.02.2006 в 15:31)   письмо автору
 
   для: Loki   (15.02.2006 в 15:28)
 

все, получилось :)

   
 
 автор: FaStY   (15.02.2006 в 20:36)   письмо автору
2.2 Кб
 
   для: FaStY   (15.02.2006 в 15:31)
 

Облом :( скрипт работает не корректно :(
вот в атаче выложил, как я понял, он выводит только те сообщения, которые находятся в первом топике(на слчай, если их много), а остальные не показывает. :(
сейчас может попробую еще попробовать, но на случай, если ничего не получится, исправте скрипт пожалуйста...

   
 
 автор: FaStY   (15.02.2006 в 20:41)   письмо автору
 
   для: FaStY   (15.02.2006 в 20:36)
 

неа, пробовал вот так:

<?php
//dвыводим темы
if($row_forum['id_forum'] !== NULL){
        
$query_theme "SELECT  *  FROM  themes  where  id_forum =".$row_forum['id_forum'];
  
$res_theme mysql_query ($query_theme)  or die (mysql_error());
  if(!
$res_theme) exit(mysql_error()); 
  while (
$row_theme mysql_fetch_array($res_theme)):
    
    
//выводим топики
if($row_theme['id_theme'] !== NULL){

        
$queryasd "SELECT  id_post  FROM  posts 
where  id_theme ="
.$row_theme[id_theme];
  
$res mysql_query ($queryasd)
    or die (
"Query failed4".mysql_error());
  if(!
$res) exit(mysql_error()); 
  
$resultasd mysql_num_rows($res);
  }
  else{
  
$resultasd=0;
  }
endwhile;
?>

не получилось:( помогите, уже все мозги себе этим запарил

   
 
 автор: FaStY   (16.02.2006 в 17:55)   письмо автору
 
   для: FaStY   (15.02.2006 в 20:41)
 

ну кто-нибудь... :(

   
 
 автор: Trianon   (16.02.2006 в 18:18)   письмо автору
 
   для: FaStY   (16.02.2006 в 17:55)
 

SELECT main_forum.name as category, count(posts.id_post) as posted 
FROM main_forum, name_forum, themes, posts 
WHERE main_forum.id = name_forum.id_main_forum
  AND name_forum.id_forum = themes.id_forum
  AND themes.id_theme = posts.id_theme
GROUP BY main_forum.name

   
 
 автор: FaStY   (16.02.2006 в 18:53)   письмо автору
 
   для: Trianon   (16.02.2006 в 18:18)
 

за это большое спасибо, только теперь бы узнать толком куда его вставлять...

   
 
 автор: Trianon   (16.02.2006 в 19:00)   письмо автору
 
   для: FaStY   (16.02.2006 в 18:53)
 

Э... даже не знаю что, и посоветовать... На вкус и цвет ...:)))))
Я бы сперва вставил в PhpMyAdmin SQL и проверил, выдает ли запрос то, что надо. А то я тоже мог наврать. А потом, если в результате то, что хочется получить, засунул бы запрос в mysql_query("....."). Ну и дальше, как обычно....

   
Rambler's Top100
вверх

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