在PHP中将MySQL输出显示为行而不是列

Good afternoon all :)

I would like to display my MySQL output on a PHP page as rows rather than columns for easier mobile viewing and scrolling (so the user can just scroll down the data instead of across).

I'd read about pivots and transposing but wasn't sure what was the most appropriate way to transform the return data output on the webpage. Please can you advise on what is best to use? It looks like it's easier to do it in PHP rather than MySQL?

I'm using a standard post form, connection PDO, isset, thead, php echo td and th etc.

My current code:

    <!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="x-ua-compatible" content="ie=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />

    <title></title>

    <link rel="stylesheet" href="css/style.css" />
  </head>

<body>

<h1>Find people</h1>

    <form method="post">
        <label for="people">Enter person</label>
        <input type="text" id="people" name="people">
        <input type="submit" name="submit" value="View Results">

    </form>

<?php

//error_reporting(-1);
//ini_set('display_errors', 'On');

if (isset($_POST['submit'])) {
  try {
    require "./config.php";
    require "./common.php";

    $connection = new PDO($dsn, $username, $password, $options);

    $sql = "SELECT *
    FROM Basics
    WHERE UniqueID = :people";

    $people = $_POST['people'];

    $statement = $connection->prepare($sql);
    $statement->bindParam(':people', $people, PDO::PARAM_STR);
    $statement->execute();

    $result = $statement->fetchAll();
  } catch(PDOException $error) {
    echo $sql . "<br>" . $error->getMessage();
  }
}
?>


<?php
if (isset($_POST['submit'])) {
  if ($result && $statement->rowCount() > 0) { ?>
    <h2>Results</h2>

    <table>
<?php echo '<table border="1">';?>
      <thead>
<tr>
  <th>Field 1</th>
  <th>Field 2</th>
  <th>Field 3</th>
</tr>
      </thead>
      <tbody>
  <?php foreach ($result as $row) { ?>
      <tr>
<td><?php echo escape($row["Field 1"]); ?></td>
<td><?php echo escape($row["Field 2"]); ?></td>
<td><?php echo escape($row["Field 3"]); ?></td>


      </tr>
    <?php } ?>
      </tbody>
  </table>
  <?php } else { ?>
     <br>No results found for <?php echo escape($_POST['people']); ?>, as the data has likely not been added yet.
  <?php }
} ?>

<!--
<?php if (isset($_POST['submit']) && $statement) { ?>
  <?php echo escape($_POST['people']); ?> successfully found.
<?php } ?>
-->

  </body>
</html>

My current output:

enter image description here

Current example output:

enter image description here

Output example I would like:

enter image description here

Similar to this example I found (can be in a table or not like below):

enter image description here

Update edit:

Looks like I just needed to use ul and li!

<ul>
<li><b>Name:</b> <?php echo escape($row["Name"]); ?></li>
</ul>
dtvnbe1428
dtvnbe1428 你尝试过交换<tr>和<th>了吗?
大约一年之前 回复

2个回答

Looks like I just needed to use ul and li!

<ul>
<li><b>Name:</b> <?php echo escape($row["Name"]); ?></li>
</ul>



我会使用array_walk()循环遍历行并在该循环内,启动tr-tag,循环遍历值 当前行,将它们输出为td-elements,退出td-loop,输出结束tr-tag并退出tr-loop。 不是那种花哨的解决方案,而是简单的。</ p>
</ div>

展开原文

原文

I would use array_walk() to loop over the rows and within that loop, start the tr-tag, loop over the values of the current row, output them as td-elements, exit the td-loop, output the closing tr-tag and exit the tr-loop. Not that fancy solution but simple.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问