Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Добавление данных из БД в таблицу


Автор: vintyara 9.5.2006, 14:08
Проблема такая.
Есть таблица с двумя столбиками (в html).
Есть БД с кучей новостей.
Нужно брать данные из этой таблицы и выводить в этой самой таблице. В столбик это зделать для меня элементарно. А вот как здеать чередование - первая новости появляется в левом столбце моей таблицы, вторая - в правом, третья опять в левом (ниже первой) и т.д. - для меня загадка.
У кого будут какие идеи ? 

Автор: Darhazer 9.5.2006, 14:42
В цикле проверяеш переменную за четность:
Код

echo '< table ... >';

for ( $i=0; $<mysql_num_rows($result); $i++)
{
     if ( $i % 2 == 0 ) echo '<tr>';
     $row = mysql_fetch_object($result);
     echo '<td>'.$row->content.'</td>';
     if ( $i % 2 != 0 ) echo '</tr>';
}
echo '</table>';
 

Автор: vintyara 9.5.2006, 15:04
Darhazer, спасибо за совет! но что-то никак не могу придумать как пользовать его в своём коде.
На всякий случай приведу кусок своего кода :

Код

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{


        $foto=$row['foto'];
        if ($foto == '0')
        {
        echo '
        <table width=250px>
        <tr><td>'.$row['name'].'</td></tr>
        <tr><td>'.$row['date'].'</td></tr>
        <tr><td>'.$row['descrip'].'</td></tr>
        <tr><td><a href="'.$row['link'].'">Подробнее</a></td></tr>
        </table>
        ';
        }
        else
        {
        echo '
        <table width=200px>
        <tr><td rowspan=2><img src=news/pic/'.$row['id'].'/small/'.$row['foto'].'></td><td>'.$row['name'].'<br>'.$row['date'].'</td></tr>
        <tr><td colspan=2>'.$row['descrip'].'</td></tr>
        <tr><td colspan=2><a href="'.$row['link'].'">Подробнее</a></td></tr>
        </table>';
        }

}


Принцип этого куска такой - идём в БД, забераем новости с таблицы. Если в новости (в строке) есть фота, то помещаем новость в первый тип таблицы, иначе в другой.
В итоге у меня в ряд, вертикально, получается несколько таблиц.

Т.е. таблица у  меня рисуется по любому. По сути мне нужно создать ещё одну таблицу

Код

<table ...>
<tr><td> XXX  </td><td> YYY </td></tr>
...


в которую будет поочерёдно втсавляться, вместо XXX и YYY данные с БД.

 
 smile
 

Автор: Darhazer 9.5.2006, 16:03
Ну я сделал бы с немного буферирования...

Код

echo '<table>';
echo '<tr><td> XXX  </td><td> YYY </td></tr>';
$html = '';
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{
        $foto=$row['foto'];
        $html .= '<tr>';
        if ($foto == '0')
        {
        $html .=  '<td>
        <table width=250px>
        <tr><td>'.$row['name'].'</td></tr>
        <tr><td>'.$row['date'].'</td></tr>
        <tr><td>'.$row['descrip'].'</td></tr>
        <tr><td><a href="'.$row['link'].'">Подробнее</a></td></tr>
        </table>
        </td><td> <!-- MARKER --> </td></tr>';
        }
        else
        {
        $tmp = '
        <table width=200px>
        <tr><td rowspan=2><img src=news/pic/'.$row['id'].'/small/'.$row['foto'].'></td><td>'.$row['name'].'<br>'.$row['date'].'</td></tr>
        <tr><td colspan=2>'.$row['descrip'].'</td></tr>
        <tr><td colspan=2><a href="'.$row['link'].'">Подробнее</a></td></tr>
        </table>';
         $html = str_replace("<!-- MARKER -->", $tmp, $html, 1);
        }
}
echo $html;
echo '</table>';

Конечно, это будет работать только если первий тип таблиц не менше чем второй
Но можно не много доработать... 

Автор: vintyara 9.5.2006, 17:09
Darhazer, 
спасибо ! буду сейчас разбирать smile !

Приветствуются другие идеи ! 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)