Запрос PHP MySQL — массив помещает данные в один столбец таблицы, требуя двух столбцов в таблице

#php #arrays

#php #массивы

Вопрос:

У меня есть запрос, он выводит результаты в один столбец, я хотел бы, чтобы результаты отображались в двух столбцах. Вот код:

 $i = 0; 
$columnCount = 2;
echo "<table>";
    while($row = $result->fetch_assoc()) 
    { 
        $newRow = ( $i % $columnCount == 0 );      
        if( $newRow ) {         
        echo '<tr>';      
        }      
        echo '<td>' . $row['text'] . '</td>';      
        if( $newRow ) {           
        echo '</tr>';      
        }      
        $i  ;  
    }
echo "</table>";
  

Еще раз спасибо,

Комментарии:

1. Вы хотите, чтобы данные сначала перемещались по вертикали или по горизонтали?

Ответ №1:

Вы определяете только один столбец в своем скрипте. Изменить:

 echo '<td>' . $row['text'] . '</td>';      
  

Для:

 echo '<td>' . $row['text'] . '</td><td>' . $row['othercolumn'] . '</td>';
  

Также я не думаю, что ваши тесты для определения новой строки необходимы, если вы не хотите чередовать tr определения, поэтому будет работать следующее:

 echo '<tr><td>' . $row['text'] . '</td><td>' . $row['othercolumn'] . '</td></tr>';
  

или, если вы действительно хотите разные строки, сделайте:

 while($row = $result->fetch_assoc()) 
    if ( $i % 2 == 0 ) {
        echo '<tr class="red">';
    } else {
        echo '<tr class="blue">';
    }
    echo '<td>' . $row['text'] . '</td><td>' . $row['othercolumn'] . '</td></tr>';
}
  

Ответ №2:

 $i = 0; 
$columnCount = 2;
echo "<table>";
    while($row = $result->fetch_assoc()) 
    { 

        if( $i % $columnCount == 0 ) {   
           if( $i != 0 ){      
             echo '</tr><tr>'; 
           else{
              echo '<tr>';
           }     
        }

        echo '<td>' . $row['text'] . '</td>';      

        $i  ;  
    }
echo "</table>";