大家下午好:)
我想在PHP页面上以行而不是列的形式显示MySQL输出,以便于移动查看和滚动(以便用户可以向下滚动数据而不是跨数据)。
我已经阅读了有关数据透视和转置的信息,但是不确定什么是转换网页上返回数据输出的最合适方法。请问您最好使用什么?看起来用PHP而不是MySQL更加容易?
我使用的是标准发布表格,连接PDO,isset,thead,php echo td和th等。
我当前的代码:
<!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>
我当前的输出:
当前示例输出:
我想要的输出示例:
类似于我发现的这个示例(可以在表中,也可以不在下面):
更新编辑:
好像我只需要使用ul和li!
<ul>
<li><b>Name:</b> <?php echo escape($row["Name"]); ?></li>
</ul>
答案 0 :(得分:0)
我将使用array_walk()遍历行,并在该循环内,启动tr-tag,遍历当前行的值,将其输出为td-elements,退出td循环,输出结束tr标签并退出tr循环。不是那种花哨的解决方案,而是简单的。
答案 1 :(得分:0)
好像我只需要使用ul和li!
<ul>
<li><b>Name:</b> <?php echo escape($row["Name"]); ?></li>
</ul>