в то время как внутри другого в то время как в PHP с использованием MySQL - PullRequest
0 голосов
/ 16 октября 2011

Мне нужно сделать следующее - получить список всех артистов из базы данных и распечатать их на странице.Но помимо этого мне нужно сделать еще один запрос к таблице «альбомов» и получить альбомы каждого исполнителя и распечатать изображения под описанием каждого исполнителя.Код, который я написал, выглядит следующим образом:

require('db.php');

$query = "SELECT * FROM artists";
$result = mysql_query($query);

$artist_id = $result[id];
$artist_name = $result[name];
$artist_surname = $result[surname];
$artist_email = $result[email];
$artist_about = $result[about];
$artist_photo = $result[photo];
while(list($artist_id, $artist_name, $artist_surname, $artist_email, $artist_about, $artist_photo) = mysql_fetch_row($result)) :
    print "<div class='row'>";
    print "<div class='artists_left'>";  
    print  "<div class='gallery_cont'><a href='#'><img src='timthumb.php?src=images/artists/$artist_photo&w=240&h=318' alt='$artist_name' /></a></div>";
    print  "</div>";  
    print "<div class='artists_right'>";
    print   "<div class='artist_title_cont'><span class='model'>Художник:</span><span class='name'>$artist_name $artist_surname</span><span class='mypage'>Личная почта:</span><a href='#' class='mypage'>$artist_email</a></div>";
    print   "<div class='artist_title_cont' style='margin-top:20px;'><span class='name'>$artist_about</span></div>";
    print     "<ul class='artists'>";
    $albums_query = "SELECT id, title_photo, dirname FROM albums WHERE master = $artist_id";
    $albums_result = mysql_query($albums_query);
    $album_id = $albums_result[id];
    $album_photo = $albums_result[title_photo];
    $album_dirname = $albums_result[dirname];
    while(list($album_id, $album_photo, $album_dirname) = mysql_fetch_row($result)) :   
        print "<li><a href='#'><img src='galleries/$album_dirname/$album_photo' alt='image' /></a></li>";
    endwhile;
    print "</ul>";
    print      "<a href='#' class='seemore_portfolio'>все работы мастера &gt;</a>";
    print  "</div>";    
    print "</div>";
endwhile;
mysql_close($connect);

Внешний запрос работает нормально, а внутренний - нет.Может ли кто-нибудь помочь мне разобраться в этом?

Заранее спасибо.

1 Ответ

1 голос
/ 16 октября 2011

Измените вторую $result на $albums_result

Вы также можете написать все это так ...

<? 
        require('db.php');

        $query = "SELECT * FROM artists";
        $result = mysql_query($query);

        while(list($artist_id, $artist_name, $artist_surname, $artist_email, $artist_about, $artist_photo) = mysql_fetch_row($result))
        {

        $li = '';

        $albums_query = "SELECT id, title_photo, dirname FROM albums WHERE master = $artist_id";
        $albums_result = mysql_query($albums_query);

        while(list($album_id, $album_photo, $album_dirname) = mysql_fetch_row($albums_result))
        {
            $li .= "<li><a href='#'><img src='galleries/$album_dirname/$album_photo' alt='image' /></a></li>";
        }

        echo "<div class='row'>
        <div class='artists_left'>  
        <div class='gallery_cont'><a href='#'><img src='timthumb.php?src=images/artists/$artist_photo&w=240&h=318' alt='$artist_name' /></a></div>
        </div>  
        <div class='artists_right'>
        <div class='artist_title_cont'><span class='model'>Художник:</span><span class='name'>$artist_name $artist_surname</span><span class='mypage'>Личная почта:</span><a href='#' class='mypage'>$artist_email</a></div>
        <div class='artist_title_cont' style='margin-top:20px;'><span class='name'>$artist_about</span></div>
        <ul class='artists'>
        $li
        </ul>
        <a href='#' class='seemore_portfolio'>все работы мастера &gt;</a>
        </div>
        </div>";

        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...