为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 PHP 将表格垂直旋转

如何使用 PHP 将表格垂直旋转

PHP
呼如林 2023-04-21 16:32:24
我只是在学习 PHP,我想创建一个表来显示我提交到我的数据库的回显数据,我的问题是默认情况下该表水平显示,正如您在我的脚本中看到的 Horizontal default table<table ><tr><th>Name</th><th>Age</th><th>Height</th></tr><?php$conn = mysqli_connect("localhost", "root", "", "class");// Check connectionif ($conn->connect_error) {die("Connection failed: " . $conn->connect_error);}$sql = "SELECT Name, Age, Height FROM student order by Name desc";$result = $conn->query($sql);if ($result->num_rows > 0) {// output data of each rowwhile($row = $result->fetch_assoc()) {echo "<tr><td>" . $row["Name"]. "</td><td>" . $row["Age"] . "</td><td>". $row["Height"]. "</td></tr>";}echo "</table>";} else //{ echo "0 results"; }//$conn->close();?></table>但我希望它垂直回显,而不是像我想要的垂直结果,我试图在我的 PHP 代码中更改回显中的 html,但我根本无法获得结果,而且表格的形状与我想要的相差甚远这是我页面的完整脚本。
查看完整描述

2 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

正如其他人所说,您应该将水平阵列转换为垂直阵列。


当然,它应该是一个通用函数来转换任何查询结果,而不是对行标题进行硬编码。这个想法是获取每一行的数组键并将它们用作新数组的键,然后将每个对应的值添加到新数组项。


这是在 mysqli 中的实现方式:


<?php

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

$mysqli = mysqli_connect('127.0.0.1','root','','test');

$mysqli->query("set names 'UTF8'");


$data = [];

$res = $mysqli->query("SELECT Name, Age, Height FROM student order by Name desc");

while ($row = $res->fetch_assoc()) {

    foreach(array_keys($row) as $key) {

        $data[$key][] = $row[$key];

    }

}

然后你得到一个具有所需结构的数组,你可以使用 ROOT 答案中的代码输出它:


<table border="1">

  <?php foreach($data as $key => $val): ?>

    <tr>

      <td><?= $key ?></td>

      <?php foreach($val as $field): ?>

        <td><?= $field ?></td>

      <?php endforeach ?>

    </tr>

  <?php endforeach ?>

</table>


查看完整回答
反对 回复 2023-04-21
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

我将您的数据模拟到普通数组中,我使用了一个 while 循环来创建一个新的Array并创建我们需要能够将列翻转为行的格式,这就是我认为您想要的:


<?php

$users  = [

  [

    'name'=> 'James',

    'height'=> 1.75,

    'age'=> 18,

  ],

  [

    'name'=> 'Bill',

    'height'=> 170,

    'age'=> 16,

  ]

];



$newArr = [];


foreach($users as $key => $val) {

  $newArr['name'][$i] = $val['name'];

  $newArr['age'][$i] = $val['age'];

  $newArr['height'][$i] = $val['height'];

  $i++;

}



?>

<table border="1">

  <?php foreach($newArr as $key => $val): ?>

    <tr>

      <td><?php echo $key; ?></td>

      <?php foreach($val as $field): ?>

        <td><?php echo $field; ?></td>

      <?php endforeach; ?>

    </tr>

  <?php endforeach ?>

</table>


查看完整回答
反对 回复 2023-04-21
  • 2 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信