|
|
|
| Здравствуйте, у меняследующая проблема:
Данные из БД выводятся из двух таблиц. Запрос к одной идет вне цикла while, а запрос к другой внутри него.. как сделать вывод по алфавиту по той таблице что внутри цикла?
Приведу свой код:
$sql="SELECT * FROM bibl_books LIMIT $start , 40 ";
$result=mysql_query($sql) or die(mysql_error());
print "<br><table align=center cellpadding=1 cellspacing=1 width=90% border=0><tr bgcolor=$color1>
<td><b><center>Автор</center></b></td><td><b><center>Название</center></b></td><td><b><center>Год</center></b></td><td><b><center>Скачали</center></b></td><td></td></tr>";
while($line=mysql_fetch_assoc($result)){
$sql="SELECT name FROM bibl_authors WHERE id='".$line['author_id']."'";
$result2=mysql_query($sql) or die("SQL die");
$line2=mysql_fetch_assoc($result2);
$chet1++;
if(((int)($chet1/2) - (double)($chet1/2)) == 0)
{$color = $color1;}
else {$color = $color2;}
print"<tr bgcolor=$color><td>".$line2['name']."</td><td>".$line['name']."</td><td>".$line['year']."</td><td>".$line['hits']."</td><td><a href=\"modules.php?name=bibl&do=download&book=".$line['id']."\"><img src=images\zip.gif></a></td></tr>";
}
print "</tr></table>";
|
| |
|
|
|
|
|
|
|
для: Naigil
(21.10.2007 в 01:49)
| | $sql="SELECT name FROM bibl_authors WHERE id='".$line['author_id']."' ORDER BY name ;";
Кажется неподумавши сказал , так не получится | |
|
|
|
|
|
|
|
для: EXP
(21.10.2007 в 05:45)
| | Именно.. так уже пробовал.. + как мне кажется ORDER BY должно быть перед WHERE | |
|
|
|
|
|
|
|
для: EXP
(21.10.2007 в 05:45)
| | попробуйте как-то так
<?
$query = 'SELECT bibl_books.*, bibl_authors.name AS autname
FROM bibl_books LEFT JOIN bibl_authors
WHERE bibl_books.author_id = bibl_authors.id
ORDER BY bibl_authors.name
LIMIT ' . $start . ', 40 ;' ;
$result=mysql_query($sql) or die(mysql_error());
print "<br><table align=center cellpadding=1 cellspacing=1 width=90% border=0><tr bgcolor=$color1> <td><b><center>Автор</center></b></td>
<td><b><center>Название</center></b></td>
<td><b><center>Год</center></b></td>
<td><b><center>Скачали</center></b></td>
<td></td></tr>";
while($line=mysql_fetch_assoc($result)) {
$chet1++;
if ($chet1%2) $color = $color1;
else $color = $color2;
print"<tr bgcolor=$color><td>".$line['autname']."</td><td>".$line['name']."</td>
<td>".$line['year']."</td><td>".$line['hits']."</td><td>
<a href=\"modules.php?name=bibl&do=download&book=".$line['id']."\">
<img src=images\zip.gif></a></td></tr>";
}
?>
</tr></table>
|
возможно правильнее будет ORDER BY autname | |
|
|
|
|
|
|
|
для: EXP
(21.10.2007 в 06:35)
| | По моему $sql нужно поменять на $query или наоборот.. но тем не менее все равно не работает данный запрос к БД.. пишет:
ou 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 bibl_books.author_id = bibl_authors.id ORDER BY bibl_
|
| |
|
|
|
|
|
|
|
для: Naigil
(21.10.2007 в 14:16)
| | извиняюсь , в последний момент просто поменял запятую не LEFT JOIN.
<?
$sql = 'SELECT bibl_books.*, bibl_authors.name AS autname
FROM bibl_books LEFT JOIN bibl_authors
ON bibl_books.author_id = bibl_authors.id
ORDER BY bibl_authors.name
LIMIT ' . $start . ', 40 ;' ;
| такую ошибку не должно выдать | |
|
|
|
|
|
|
|
для: EXP
(21.10.2007 в 15:03)
| | Все=) огромное спасибо.. все отлично работает.. | |
|
|
|