вывод данных с базы

wideru

Новичок
добрый вечер, можете подсказать или помочь решить проблему с выводом всех данных с базы, у каждого альбома есть подальбом, показывает только один подальбом даже если есть 2 подальбома который принадлежит альбому, пробовал как угодно, не выходит у меня решить проблему.
http://pastebin.com/hKSq25k3
 

Andkorol

Новичок
Ты ж переопределяешь вывод для каждой итерации цикла подальбомов:
PHP:
$iphotoss = "<center>&nbsp - <a href=\"{$fulllinks}\">{$numes}</a></center><br>";
А нужно их конкатенировать:
PHP:
$iphotoss .= "<center>&nbsp - <a href=\"{$fulllinks}\">{$numes}</a></center><br>";
 

wideru

Новичок
у меня так выходит каша, выводит подальбомы к тем альбомам к которым не предналежит
 

wideru

Новичок
в первой картинке показывает как надо только к последниму альбому (Альбом) не хватает один подальбом а во второй картинке каша
 

fixxxer

К.О.
Партнер клуба
Зачем ты картинки показываешь? Смотреть надо html-код.

Сверстай ручками статический html с примером как тебе надо, потом делай так, чтобы php-скрипт генерировал ровно то же самое.
Если не получается - показывай и то и другое. Без картинок.
 

Andkorol

Новичок
Для начала – убери дурацкое форматирование из своей функции.
Формируй в ней массив данных (готовых ссылок, в твоём случае), примерно так:
PHP:
function putAlbum()
{
    global $db;

    $return = array();
    $album = $db->query( "SELECT * FROM " . PREFIX . "_iphoto_album WHERE status = 1 ORDER BY date DESC LIMIT 10" );
    if ($db->num_rows($album) > 0) {
        while ( $row = $db->get_row($album) ) {
            $row['date'] = strtotime( $row['date'] );
            $ids = $row['id'];
            $nume = $row['name'];
            $alt_nume = $row['alt_name'];
            $fulllink = "/iphoto/$alt_nume";
             
            $return[$row['id']]['album'] = "<a href=\"{$fulllink}\">{$nume}</a><br>";
             
            $subalbum = $db->query( "SELECT * FROM " . PREFIX . "_iphoto_subalbum WHERE album_id = '$ids' AND status = 1 " );
            if ($db->num_rows($subalbum) > 0) {
                while ( $rows = $db->get_row($subalbum) ) {
                     
                        $rows['date'] = strtotime( $rows['date'] );
                        $numes = $rows['name'];
                        $alt_numes = $rows['alt_name'];
                        $fulllinks = "/iphoto/$alt_numes";
                     
                        $return[$row['id']]['subalbums'][] = "<a href=\"{$fulllinks}\">{$numes}</a><br>";
                     
                }
            }
        }
    }

    return $return;
}
На выходе получаешь такой массив:
Код:
array (size=4)
  185 =>
    array (size=1)
      'album' => string '<a href="/iphoto/album54">ALBUM54</a><br>' (length=41)
  184 =>
    array (size=2)
      'album' => string '<a href="/iphoto/test">test</a><br>' (length=35)
      'subalbums' =>
        array (size=1)
          0 => string '<a href="/iphoto/subalbum-test">subalbum-test</a><br>' (length=53)
  183 =>
    array (size=2)
      'album' => string '<a href="/iphoto/albom1">Альбом1</a><br>' (length=46)
      'subalbums' =>
        array (size=1)
          0 => string '<a href="/iphoto/fsfsfsd">fsfsfsd</a><br>' (length=41)
  182 =>
    array (size=2)
      'album' => string '<a href="/iphoto/albom">Альбом</a><br>' (length=44)
      'subalbums' =>
        array (size=2)
          0 => string '<a href="/iphoto/testare">testare</a><br>' (length=41)
          1 => string '<a href="/iphoto/tess">tess</a><br>' (length=35)
Дальше этот массив можешь обрабатывать, как угодно – отступами, вложенными списками и прочей ерундой.
 

wideru

Новичок
Для начала – убери дурацкое форматирование из своей функции.
Формируй в ней массив данных (готовых ссылок, в твоём случае), примерно так:
PHP:
function putAlbum()
{
    global $db;

    $return = array();
    $album = $db->query( "SELECT * FROM " . PREFIX . "_iphoto_album WHERE status = 1 ORDER BY date DESC LIMIT 10" );
    if ($db->num_rows($album) > 0) {
        while ( $row = $db->get_row($album) ) {
            $row['date'] = strtotime( $row['date'] );
            $ids = $row['id'];
            $nume = $row['name'];
            $alt_nume = $row['alt_name'];
            $fulllink = "/iphoto/$alt_nume";
           
            $return[$row['id']]['album'] = "<a href=\"{$fulllink}\">{$nume}</a><br>";
           
            $subalbum = $db->query( "SELECT * FROM " . PREFIX . "_iphoto_subalbum WHERE album_id = '$ids' AND status = 1 " );
            if ($db->num_rows($subalbum) > 0) {
                while ( $rows = $db->get_row($subalbum) ) {
                   
                        $rows['date'] = strtotime( $rows['date'] );
                        $numes = $rows['name'];
                        $alt_numes = $rows['alt_name'];
                        $fulllinks = "/iphoto/$alt_numes";
                   
                        $return[$row['id']]['subalbums'][] = "<a href=\"{$fulllinks}\">{$numes}</a><br>";
                   
                }
            }
        }
    }

    return $return;
}
На выходе получаешь такой массив:
Код:
array (size=4)
  185 =>
    array (size=1)
      'album' => string '<a href="/iphoto/album54">ALBUM54</a><br>' (length=41)
  184 =>
    array (size=2)
      'album' => string '<a href="/iphoto/test">test</a><br>' (length=35)
      'subalbums' =>
        array (size=1)
          0 => string '<a href="/iphoto/subalbum-test">subalbum-test</a><br>' (length=53)
  183 =>
    array (size=2)
      'album' => string '<a href="/iphoto/albom1">Альбом1</a><br>' (length=46)
      'subalbums' =>
        array (size=1)
          0 => string '<a href="/iphoto/fsfsfsd">fsfsfsd</a><br>' (length=41)
  182 =>
    array (size=2)
      'album' => string '<a href="/iphoto/albom">Альбом</a><br>' (length=44)
      'subalbums' =>
        array (size=2)
          0 => string '<a href="/iphoto/testare">testare</a><br>' (length=41)
          1 => string '<a href="/iphoto/tess">tess</a><br>' (length=35)
Дальше этот массив можешь обрабатывать, как угодно – отступами, вложенными списками и прочей ерундой.
не знаю кому нужены такие трудность, но спасибо, решил по другому, передвинул $iphotoss = ""; перед if и поставил еще ($iphotoss .=) и работает.
 
Сверху