Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > Соответствие одного значения в таблице


Автор: Litovast 19.12.2008, 16:54
Код

<?
$settings['maxrow']=15;
$settings['params']='pif=comments&user='.$user.'';
$settings['pagelim']=5;//лимит страниц
$page=(int)$_GET['page'];
if ($page=="")$page=1;
$offset=($page-1)*$settings['maxrow'];

$start = $offset; //см
$limit = $settings['maxrow'];
if ($user!="")
{
    $r=mysql_query("SELECT * FROM books ");
$q2=mysql_query("SELECT * FROM comments WHERE `userid`='".addslashes($user)."'");
$q=mysql_query("SELECT * FROM comments WHERE `userid`='".addslashes($user)."' ORDER BY id DESC LIMIT $start,$limit");
}
else
{
    $r=mysql_query("SELECT * FROM books ");
$q2=mysql_query("SELECT * FROM comments ");
$q=mysql_query("SELECT * FROM comments ORDER BY id DESC LIMIT $start,$limit");
}

$count_row=mysql_num_rows($q2);
$count=1*$start+1;

while ($row=mysql_fetch_array($q) and $ro=mysql_fetch_array($r)){
    $r1=mysql_query("SELECT count(*) FROM comments where tema='$ro[name]'");
$spisoks .="<div  class=news><B>$count</B>. ".checkuser($row[userid])."$ktouser :: $row[data]<A HREF=\"?pif=view&id=".$row['tema']."#".$row['id']."\"><div style='padding:10px;border:1px solid #aaa;background-color: #ecffe9;margin:2px 20px 20px 0px;'>".$row['text']."<br><br><div style='padding:5px;border:1px dashed #aaa;background-color: #FFFFFF;position:absolute;cursor:pointer;'>Тема:$ro[name]</div></div></a></div><br>";
++$count;
}
if ($skoka==0)
{
    $spisok .="Нет результатов";
}


?>


Уважаемые знатоки, доброго всем здоровья!
Подскажите пожалуйста: Вот у меня есть такой код (написан выше). Есть две таблице в БД. В первой таблице(books) есть параметр (name) - текстовый (например:id "1" = name "книга о книге"). Во второй таблице(comments) есть параметр id, параметр "tema" - цифровой (например: id "1"=tema "1") и (text) - текстовый (хранятся комментарии к книгам). Сейчас при составлении запроса в БД выводится список комментариев, имена людей их публикующие, дата и название книги. Проблема в том, что названия книг выводятся тупо по порядку, а не соответственно комментарию. 
если поставить вместо
Код

Тема:$ro[name]

Код

Тема:$row[name]

То каждый комментарий соответствует книги, но только выводится не название книги, а ее ID, который записан во второй таблице в параметре (tema).Как в этом случае сделать соответствие этого ID реальному названию книги, которое хранится в параметре name второй таблицы (books)?
Помогите пожалуйста. Если можно исправьте мой пример..Заранее огромнейшее спасибо!

Автор: Litovast 19.12.2008, 21:03
Ау, народ, есть кто?Или все заняты уничтожением вируса на своем компеsmile? Помогите пожалуйста!

Автор: Litovast 21.12.2008, 19:31
Ни один порядочный человек не помог :(
Выход из сложившейся ситуации был таким:
Код

$r=mysql_query("SELECT  comments.tema,books.name FROM comments inner join books on books.id=comments.tema ORDER BY comments.id DESC  LIMIT 0,15");

Все работает как часики!

Автор: LSD 22.12.2008, 14:59
Цитата(Litovast @  21.12.2008,  19:31 Найти цитируемый пост)
Ни один порядочный человек не помог :(

Это потому, что никому было не охота заниматься отделением мух от котлет (SQL запросов, от PHP кода).

Автор: Akella 27.12.2008, 00:08
Цитата(Litovast @  21.12.2008,  19:31 Найти цитируемый пост)
Ни один порядочный человек не помог :(

а что, были обязаны?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)