За последние 24 часа нас посетили 34220 программистов и 1810 роботов. Сейчас ищут 832 программиста ...

Вывод масива с помощью Smarty

Тема в разделе "PHP для новичков", создана пользователем Lexx, 17 сен 2008.

  1. Lexx

    Lexx Активный пользователь

    С нами с:
    31 июл 2008
    Сообщения:
    35
    Симпатии:
    0
    Помогите пожалуйста: необходимо из базы данных отобразить список таблиц.
    Я сделал так:

    PHP:
    1.  $host = "localhost";
    2. $user = "root";
    3. $database = "subjects";
    4. $connect_mysql = mysql_connect($host, $user);
    5.  
    6. require ('/WEB_Server/Host/lexx.com/setupForum.php');
    7.             $smarty = new Smarty_Forum;
    8.             $smarty->force_compile = TRUE;
    9.  
    10.             if ($res = mysql_list_tables($database))
    11.             {
    12.                     while($row=mysql_fetch_array($res))
    13.                        
    14.                     {
    15.                         $rows = $row[''];
    16.                         $smarty->assign('rows', $rows);
    17.                                
    18.                     }
    19.                    
    20.             }
    21.             else
    22.             {  
    23.                 echo "Ошибка:".mysql_error();
    24.             }
    25.             $smarty->display('contents_base.html');

    HTML:
    1.  
    2. <table width="100%" border='2'>
    3.      <tr>
    4.      <td>{foreach item=row from=$rows} {$rows} {/foreach}</td>
    5.      </tr>
    6.  </table>
    7.  
    но полочается что если сделать так:



    PHP:
    1.  
    2. ....
    3. while($row=mysql_fetch_array($res))
    4.                        
    5.                     {
    6.                         $rows = $row[''];
    7.                         $smarty->assign('rows', $rows);
    8.                                
    9.                     }
    10. ....
    11.  
    то выводится только одно имя таблицы,
    а если сделать вот так:


    PHP:
    1.  
    2. ....
    3. while($row=mysql_fetch_array($res))
    4.                        
    5.                     {
    6.                         $rows = $row[''];
    7.                         $smarty->assign('rows', $rows);
    8.                         $smarty->display('contents_base.html');    
    9.                     }
    10. ....
    11.  


    то выводит все имена таблиц но множит HTML скрипт и получается если добавить например картинку то эта картинка будет множится по количеству таблиц в базе. Мне же надо чтобы имена таблиц отображались в одной ячейке таблицы.
     
  2. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    PHP:
    1.  
    2. <?php
    3.              if ($res = mysql_list_tables($database))
    4.              {
    5.                  while($row=mysql_fetch_array($res))
    6.                      $rows[] = $row[];
    7.                  $smarty->assign('rows', $rows);
    8.              }
    9. ?>
    10.  
     
  3. Lexx

    Lexx Активный пользователь

    С нами с:
    31 июл 2008
    Сообщения:
    35
    Симпатии:
    0
    такой вариант пробовал, выдает ошибку: Fatal error: Cannot use [] for reading in D:\("такойто макшрут") on line 21
     
  4. neverlose

    neverlose Активный пользователь

    С нами с:
    27 авг 2008
    Сообщения:
    1.112
    Симпатии:
    20
    Я ошибся. Вместо $row[] поставь $row
     
  5. Lexx

    Lexx Активный пользователь

    С нами с:
    31 июл 2008
    Сообщения:
    35
    Симпатии:
    0
    Почемуто выводит вместо названий таблиц слова "Array" по количеству таблиц в базе данных.
     
  6. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    уф.

    PHP:
    1. <?php
    2. if ($res = mysql_list_tables($database)){
    3.         while($row = mysql_fetch_row($res))
    4.             $rows[] = $row[0];
    5.  
    6.         $page->assign('rows',$rows);
    7. }
    8. ?>
    HTML:
    1.  
    2. <table width="100%" border="2">
    3.      <tr>
    4.      <td>{foreach item=row from=$rows}{$row}<br />{/foreach}</td>
    5.      </tr>
    6.   </table>
    7.  
     
  7. Lexx

    Lexx Активный пользователь

    С нами с:
    31 июл 2008
    Сообщения:
    35
    Симпатии:
    0
    Спасибо все заработало!!!!!! :D