convert rows to columns php is it possible?

Viewed 118

I want to make 2 columns(openday, school_name) into 1 row and print it as a table.

I would like to print it out like a desired table.

Is it possible?

convert rows to columns php is it possible?

If possible, please explain in detail

enter image description here

my code is

<?php
$SQL= "SELECT Concat_ws('\n' openday,'', school_name) AS school_column, supply_name,score  from result ";

$grouped = [];
$columns = [];    
 
$resultObject = $result = mysqli_query($conn, $SQL);
foreach ($resultObject as $row) {
$grouped[$row['supply_name']][$row['school_column']] = $row['score'];
$columns[$row['school_column']] = $row['school_column'];
}
 
sort($columns);
$defaults = array_fill_keys($columns,'-');
array_unshift($columns, 'school_column');
 
?>
 
 <body>
 
<table id="example" class="display" style="width:100%" align="center">
  <thead>
  
<?php
 
  While($result = mysqli_fetch_array($resultObject));
{
    echo "<tr>
     <td>supply_name</td> 
    <td> ".$row['school_column']." </td>
    </tr>";
}
?>
  </thead>
 
<tbody>
 
<?php
 
  While($result = mysqli_fetch_array($resultObject));
{
    echo "<tr>
    <td> ".$row['supply_name']." </td>
    <td> ".$row['score']." </td> 
   
    </tr>";
}
 
?>
</tbody>
</table>
</body>

1 Answers
<?php
$SQL= "SELECT Concat_ws('\n' openday,'', school_name) AS school_column, supply_name,score  from result ";

$grouped = [];
$columns = [];    
 
$resultObject = $result = mysqli_query($conn, $SQL);
foreach ($resultObject as $row) {
$grouped[$row['supply_name']][$row['school_column']] = $row['score'];
$columns[$row['school_column']] = $row['school_column'];
}
 
sort($columns);
$defaults = array_fill_keys($columns,'-');
array_unshift($columns, 'school_column');
 
?>
 
 <body>
 
<table id="example" class="display" style="width:100%" align="center">
  <thead>
  
<?php
 
  while($result = mysqli_fetch_array($resultObject))
{
    echo "<tr>
     <td>openday</td> 
    <td> school_name </td>
    </tr>";
}
?>
  </thead>
 
<tbody>
 
<?php
 
  while($result = mysqli_fetch_array($resultObject))
{
    echo "<tr>
    <td colspan='2'> ".$row['supply_name']." </td>
    <td> ".$row['score']." </td> 
   
    </tr>";
}
 
?>
</tbody>
</table>
</body>
Related