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

Форум MySQL

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

 

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

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

тема: Структурный форум(проболжение2)
 
 автор: hell_riser   (19.06.2006 в 13:42)   письмо автору
 
 

to: Cheops
>Давайте лучше в новую тему. Какого рода проблемы возникают? С SQL-запросом или с PHP-кодом?

Проблема мне так кажется больше в сторону SQL-запроса, что мне надо выбирать и по каким критериям. Может быть стоит в таблице какое-нибудь доп. поле ввести, не могу догать логики.

   
 
 автор: hell_riser   (19.06.2006 в 15:14)   письмо автору
 
   для: hell_riser   (19.06.2006 в 13:42)
 

Вообще-то я выбирал так:

<?php

//соединяемся с mySQL сервером.
include "config.php";
include 
"function.php";
//Считаем что GET параметр $mess_id(id-родительского сообщения) получен
//выбираем головное сообщение
  
$main mysql_query("SELECT * FROM $forum WHERE id = $mess_id");
  if(!
$main) exit("ERROR:".mysql_error());
  
$mess mysql_fetch_assoc($main);
    
$title $mess['title']; //заголовек темы выводится отдельной таблицей.
    
$child $mess['children'];//эту переменную в данном случае определяем только 
    
$post $mess['author'];   //для заполнения функции.
    
$date $mess['post_date'];
    
$message $mess['message'];
    
$parent_id $mess['id'];
//вызов функции форматирования и вывода на экран
 
show_message$post$date$message$parent_id );

//выбираем ответы по переменной $parent_id хотя можно и по $mess_id
//и затем в цикле выводим все ответы.
$sql mysql_query("SELECT * FROM $forum WHERE parent = $parent_id");
  if(!
$sql) exit ("ERROR:".mysql_error());
  while(
$answ mysql_fetch_assoc($sql))
  {
    
$id $answ['id'];
    
$child $answ['children'];
    
$title $answ['title'];
    
$poster $answ['author'];
    
$date $answ['post_date'];
    
$msg $answ['message'];
 
show_message($poster$date$mesg$id); 
  }
mysql_close();

?>

Функция show_message это html таблица с выбраными данными.
В принципе я понимаю что теперь (наверное в функции) надо ввести проверку если $child=y то опять запрос и выборка. А вот по какому параметру, и в каком месте вызывать не пойму.

   
 
 автор: cheops   (19.06.2006 в 19:05)   письмо автору
 
   для: hell_riser   (19.06.2006 в 15:14)
 

А в чём проблема? Что работает не так?

   
 
 автор: hell_riser   (19.06.2006 в 19:14)   письмо автору
 
   для: cheops   (19.06.2006 в 19:05)
 

Проблема в том, что ответы которые в свою очередь так же имеют ответы не выводятся вообще. Попробывал ввести в функцию запрос:

<?php
    
if($child "y")
    {
        
$sql mysql_query("SELECT * FROM $forum WHERE parent='$m_id'");
        if(!
$sql) exit("Ошибка обращения к БД".mysql_error());
        while(
$answ_answ mysql_fetch_assoc($sql))
        {
            
$post $answ_answ['author'];
            
$date $answ_answ['post_date'];
            
$mess $answ_answ['message'];
            
$child $answ_answ['children'];
        }
    }    
?>

Получил ответ: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE parent='1'' at line 1

   
 
 автор: cheops   (20.06.2006 в 01:51)   письмо автору
 
   для: hell_riser   (19.06.2006 в 19:14)
 

А что находится в переменной $forum - выведите также запрос в браузер
<?php
  
echo "SELECT * FROM $forum WHERE parent='$m_id'";
?>

   
 
 автор: hell_riser   (20.06.2006 в 07:56)   письмо автору
 
   для: cheops   (20.06.2006 в 01:51)
 

В переменной $forum находится название таблицы(mysite_forum_messg) пробывал вывести запрос но не выводится абсолютно ни чего кроме ошбки

   
 
 автор: cheops   (20.06.2006 в 11:04)   письмо автору
 
   для: hell_riser   (20.06.2006 в 07:56)
 

Код выглядит так?
<?php 
    
if($child "y"
    { 
        
$sql mysql_query("SELECT * FROM $forum WHERE parent='$m_id'"); 
        if(!
$sql)
        {
           echo 
"SELECT * FROM $forum WHERE parent='$m_id'";
           exit(
"Ошибка обращения к БД".mysql_error()); 
        }
        while(
$answ_answ mysql_fetch_assoc($sql)) 
        { 
            
$post $answ_answ['author']; 
            
$date $answ_answ['post_date']; 
            
$mess $answ_answ['message']; 
            
$child $answ_answ['children']; 
        } 
    }     
?>

   
 
 автор: hell_riser   (20.06.2006 в 13:21)   письмо автору
 
   для: cheops   (20.06.2006 в 11:04)
 

Да точ в точ кроме эхо Селект, я подставлял переменную с запросом, теперь
ECHO возвращает :SELECT * FROM WHERE parent='1' тобиш
получается что не определена переменная $forum?

   
 
 автор: hell_riser   (20.06.2006 в 19:38)   письмо автору
2.3 Кб
 
   для: hell_riser   (20.06.2006 в 13:21)
 

Всё с этой проблемой разобрался в самом деле в функции не определялась переменная $forum.
Но проблема вывода осталась т.е от этого запроса толку нет. Выбираю только родительское сообщение и ответы не посредственно на него, а ответ на ответ, хоть лбом об стену.
Хоть намекните по каким параметрам его доставать с запросом как-нибудь разберусь.

P.S. Может я вообще не правильно действую, прилагаю скрипт выборки.

   
Rambler's Top100
вверх

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