За последние 24 часа нас посетили 55015 программистов и 1749 роботов. Сейчас ищут 802 программиста ...

Объединить ячейки в таблице

Тема в разделе "PHP для новичков", создана пользователем Искандар, 18 май 2017.

  1. Искандар

    Искандар Активный пользователь

    С нами с:
    18 фев 2017
    Сообщения:
    78
    Симпатии:
    6
    Всем доброе утро!
    Есть вот такая таблица:
    PHP:
    1. <table>
    2. <?php while($row=mysql_fetch_array($result)):?>
    3. <tr>
    4. <td><?php echo $row[0];?></td>
    5. <td><?php echo $row[1];?></td>
    6. </tr>
    7. <?php endwhile;?>
    8. </table>
    Можно ли объединить первый столбец через каждый 3 строки?
    Спасибо!
     
  2. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    Можно. Пожалуйста!
     
    askanim нравится это.
  3. Искандар

    Искандар Активный пользователь

    С нами с:
    18 фев 2017
    Сообщения:
    78
    Симпатии:
    6
    Если не трудно, как?)
     
  4. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    А как ты пробовал объединить?
     
  5. Искандар

    Искандар Активный пользователь

    С нами с:
    18 фев 2017
    Сообщения:
    78
    Симпатии:
    6
    PHP:
    1. <table>
    2. <?php while($row=mysql_fetch_array($result)):?>
    3. <tr>
    4. <td rowspan="3"><?php echo $row[0];?></td>
    5. <td><?php echo $row[1];?></td>
    6. </tr>
    7. <?php endwhile;?>
    8. </table>
     
    MouseZver нравится это.
  6. Sergey_Tsarev

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

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    Во-первых, вместо mysql используй mysqli или PDO.
    Во-вторых первый столбец объединить с чем?
    --- Добавлено ---
    PHP:
    1. <table>
    2.  
    3. <?php
    4.  
    5. $i = 1;
    6.  
    7. while($row=mysqli_fetch_array($result)):
    8.  
    9.     if($i%3):
    10.         echo '<tr>
    11.                <td rowspan="3">'.$row[0].'</td>
    12.                <td>'.$row[1].'</td>
    13.              </tr>';
    14.     else:
    15.         echo '<tr>
    16.                <td>'.$row[1].'</td>
    17.              </tr>';
    18.     endif;
    19. $i++;
    20. endwhile;
    21.  
    22. ?>
    23.  
    24. </table>
     
  7. Искандар

    Искандар Активный пользователь

    С нами с:
    18 фев 2017
    Сообщения:
    78
    Симпатии:
    6
    Result вот такая:
    __________

    Иван | 1000
    __________

    Иван | 2000
    __________

    Иван | 3000
    __________

    Мне нужно вот так:
    __________

    _____| 1000
    __________

    Иван | 2000
    __________

    _____| 3000
    __________
     
  8. Sergey_Tsarev

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

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    @Искандар, немного ошибся. Вот так должно работать:

    PHP:
    1. <table>
    2. <?php
    3. $i = 0;
    4. while($row=mysqli_fetch_array($result)):
    5.     if (($i%3) == 0):
    6.         echo '<tr>
    7.               <td rowspan="3">'.$row[0].'</td>
    8.               <td>'.$row[1].'</td>
    9.             </tr>';
    10.     else:
    11.         echo '<tr>
    12.               <td>'.$row[1].'</td>
    13.             </tr>';
    14.     endif;
    15. $i++;
    16. endwhile;
    17. ?>
    18. </table>
     
    #8 Sergey_Tsarev, 18 май 2017
    Последнее редактирование: 18 май 2017
    Искандар нравится это.
  9. Искандар

    Искандар Активный пользователь

    С нами с:
    18 фев 2017
    Сообщения:
    78
    Симпатии:
    6
    @Sergey_Tsarev, спасибо за ответ, но второй вариант тоже не работает.:(
     
    denis01 нравится это.
  10. Sergey_Tsarev

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

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    Какой результат?
     
  11. Sergey_Tsarev

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

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    Вот это точно работает:
    PHP:
    1. <table>
    2. <?php
    3. $arr = [1,2,3,4,5,6,7,8,9];
    4.  
    5. $i = 0;
    6. foreach($arr as $value):
    7.     if (($i%3) == 0):
    8.         echo '<tr>
    9.              <td rowspan="3">Заголовок '.$i.'</td>
    10.              <td>Параметр '.$value.'</td>
    11.            </tr>';
    12.     else:
    13.         echo '<tr>
    14.              <td>Параметр '.$value.'</td>
    15.            </tr>';
    16.     endif;
    17. $i++;
    18. endforeach;
    19. ?>
    20. </table>
     
    Искандар нравится это.
  12. Алекс8

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

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    Вам надо не объединять столбцы..
    а создать условие когда в одном случае $row[0] и $row[1] будут помещаться в разные ячейки
    а в другом случае будет $row[0] и $row[1] помещаться в одну ячейку...
     
    Искандар нравится это.
  13. Искандар

    Искандар Активный пользователь

    С нами с:
    18 фев 2017
    Сообщения:
    78
    Симпатии:
    6
    Вот этот вариант то что хотел).
    Оказывается я не заметил. У меня "mysql"
    PHP:
    1. while($row=mysqli_fetch_array($result)):
    Удалил букву "i" всё работает.)
    Тему можно закрыть.
    Всем спасибо!
     
  14. Sergey_Tsarev

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

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    Это ОЧЕНЬ плохо. Срочно меняй все на MySQLi или PDO. В PHP 7 mysql вообще не используется.
     
    Искандар нравится это.
  15. Искандар

    Искандар Активный пользователь

    С нами с:
    18 фев 2017
    Сообщения:
    78
    Симпатии:
    6
    Хорошо. Я начинаю изучать MySQLi.
    Спасибо за совет!