За последние 24 часа нас посетили 18997 программистов и 1618 роботов. Сейчас ищет 961 программист ...

Как вывести данные циклом в таблицу из нескольких рядов

Тема в разделе "PHP для новичков", создана пользователем LAlexS, 6 янв 2011.

  1. LAlexS

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

    С нами с:
    12 авг 2010
    Сообщения:
    179
    Симпатии:
    0
    Адрес:
    Екатеринбург
    Вот хоть убейте, но чего-то даже примерно не представляю как сделать.

    Надо чтобы на выходе был такой код
    Код (Text):
    1.  
    2. <table>
    3. <tr>
    4. <td>".$product['name']."</td>
    5. <td>".$product['name']."</td>
    6. <td>".$product['name']."</td>
    7. </tr>
    8. <tr>
    9. <td>".$product['name']."</td>
    10. <td>".$product['name']."</td>
    11. <td>".$product['name']."</td>
    12. </tr>
    13. <tr>
    14. <td>".$product['name']."</td>
    15. <td>".$product['name']."</td>
    16. <td>".$product['name']."</td>
    17. </tr>
    18. </table>
    Как мне вывести эти данные циклом? Точнее, я не могу додуматься как это сделать, чтобы таблица была в несколько рядов.
     
  2. karlozzz

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

    С нами с:
    24 окт 2010
    Сообщения:
    430
    Симпатии:
    0
    Адрес:
    Y-OLA
    данные а массив foreach по массиву и выводишь
     
  3. LAlexS

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

    С нами с:
    12 авг 2010
    Сообщения:
    179
    Симпатии:
    0
    Адрес:
    Екатеринбург
    Не могу врубиться как сделать...
     
  4. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    считать остаток от деления на 3
     
  5. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    PHP:
    1. <?php
    2. $products = array('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten');
    3. $html = '<table border="1">';
    4. $i = 1;
    5. foreach($products as $product) {
    6.    $a = $i % 3;
    7.    if($a == 1) $html .= '<tr>';
    8.    $html .= '<td>' . $product . '</td>';
    9.    if($a == 0) $html .= '</tr>';
    10.    $i++;
    11. }
    12. if($a != 0) $html .= '</tr>';
    13. $html .= '</table>';
    14. echo $html;
    15. ?>
     
  6. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    LAlexS
    Вложенный цикл
     
  7. LAlexS

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

    С нами с:
    12 авг 2010
    Сообщения:
    179
    Симпатии:
    0
    Адрес:
    Екатеринбург
    sobachnik

    я его под себя подработал
    Код (Text):
    1. $product = mysql_fetch_array ($product_list);
    2. $html = '<table>';
    3. $i = 1;
    4. foreach($product as $products) {
    5. $a = $i % 3;
    6. if($a == 1) $html .= '<tr>';
    7. $html .= '<td>' . $products['model_name'] . '</td>';
    8. if($a == 0) $html .= '</tr>';
    9. $i++;
    10. }
    11. if($a != 0) $html .= '</tr>';
    12. $html .= '</table>';
    13. echo $html;
    Но он почему-то выводит только первые буквы?
    1 1 2
    2 N N
    4 4 l
    l 1 1
    L L К
    Я не отрицаю, что туплю, но где не могу понять.
     
  8. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Сделай print_r($product); и посмотри что в нём
     
  9. LAlexS

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

    С нами с:
    12 авг 2010
    Сообщения:
    179
    Симпатии:
    0
    Адрес:
    Екатеринбург
    sobachnik

    похоже это из-за моего запроса к БД

    Код (Text):
    1. $product_list = mysql_query('SELECT tp.onoff, tp.id, tp.model_name, tp.price_normal, tp.image_main, tp.parent_brand, tb.brand_name, tc.synonym FROM product_info tp, brands tb, categories tc WHERE tp.parent_brand = tb.id AND tp.parent_categorie = tc.id AND tp.onoff = 1 LIMIT '.$start_pos.', '.$perpage) or die('Error!');
    Но почему, я не понимаю
     
  10. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Потому что mysql_fetch_array (mysql_fetch_assoc, mysql_fetch_row, ...) возвращает 1 строку из результата запроса к б.д.
    PHP:
    1. <?php
    2. $html = '<table border="1">';
    3. $i = 1;
    4. while($product = mysql_fetch_assoc($product_list)) {
    5.    $a = $i % 3;
    6.    if($a == 1) $html .= '<tr>';
    7.    $html .= '<td>' . $product['model_name'] . '</td>';
    8.    if($a == 0) $html .= '</tr>';
    9.    $i++;
    10. }
    11. if($a != 0) $html .= '</tr>';
    12. $html .= '</table>';
    13. echo $html;
    14. ?>
     
  11. LAlexS

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

    С нами с:
    12 авг 2010
    Сообщения:
    179
    Симпатии:
    0
    Адрес:
    Екатеринбург
    sobachnik

    Огромное спасибо!!! Серьезно, огромное спасибо! Я два дня не мог понять с какой стороны к этой проблеме подойти!!