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

Форум MySQL

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

 

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

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

тема: Сортировка данных из БД по алфавиту
 
 автор: Naigil   (21.10.2007 в 01:49)   письмо автору
 
 

Здравствуйте, у меняследующая проблема:
Данные из БД выводятся из двух таблиц. Запрос к одной идет вне цикла 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>";

   
 
 автор: EXP   (21.10.2007 в 05:45)   письмо автору
 
   для: Naigil   (21.10.2007 в 01:49)
 

$sql="SELECT name FROM bibl_authors WHERE id='".$line['author_id']."' ORDER BY name ;";

Кажется неподумавши сказал , так не получится

   
 
 автор: Naigil   (21.10.2007 в 06:31)   письмо автору
 
   для: EXP   (21.10.2007 в 05:45)
 

Именно.. так уже пробовал.. + как мне кажется ORDER BY должно быть перед WHERE

   
 
 автор: EXP   (21.10.2007 в 06:35)   письмо автору
 
   для: 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

   
 
 автор: Naigil   (21.10.2007 в 14:16)   письмо автору
 
   для: 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_

   
 
 автор: EXP   (21.10.2007 в 15:03)   письмо автору
 
   для: 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 ;' ;
такую ошибку не должно выдать

   
 
 автор: Naigil   (21.10.2007 в 15:47)   письмо автору
 
   для: EXP   (21.10.2007 в 15:03)
 

Все=) огромное спасибо.. все отлично работает..

   
Rambler's Top100
вверх

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