您好我有以下脚本
show.php
<?php
include "db.php"; // <== db connection
include "sys.php"; //<== main system
// statment to show $result as table
?>
我需要正确的语句来读取我的表数据并将其显示为表
我有一个包含7行的表:
username| name| age| etc
他们大约需要每页显示20条记录
如何构建正确的声明?
答案 0 :(得分:1)
首先,您需要使用mysql或mysqli(推荐)从数据库中获取数据。 由于您希望将项目数限制为20,因此在您的项目中添加限制条件是明智的 sql而不是以后过滤掉项目,这对性能至关重要。 最后,简单地遍历数据,为数据库中的每一行生成一个新的表行。
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "my_db");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
// remember to sanitize potential user input
$start = (int) (!empty($_GET['start']) ? $_GET['start'] : 0);
$end = (int) (!empty($_GET['end']) ? $_GET['end'] : 20);
$query = "SELECT username, name, age FROM users limit $start, $end";
if ($stmt = $mysqli->prepare($query)) {
/* execute statement */
$stmt->execute();
/* bind result variables */
$stmt->bind_result($username, $name, $age);
?>
<table>
<tr>
<th>Username</th>
<th>Name</th>
<th>Age</th>
<th></th>
<th></th>
<th></th>
<th></th>
</tr>
<?php
/* fetch values */
while ($stmt->fetch()) {
// do something with the fetched variables here
?>
<tr>
<td><?php echo htmlentities($username); ?></td>
<td><?php echo htmlentities($name); ?></td>
<td><?php echo htmlentities($age); ?></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<?php
}
/* close statement */
$stmt->close();
?></table><?php
}
/* close connection */
$mysqli->close();
?>
答案 1 :(得分:0)
您需要使用某种分页库。
查看PHP Sense's pagination example并找出适合您的内容!
答案 2 :(得分:0)
需要更多信息(db.php和sys.php的用法)。
假设db.php包含一个用于访问数据库的类,则需要创建一个db实例并使用您的连接信息对其进行初始化。以下内容不一定反映您的设置或db类结构。
$db = new Db();
$host = "localhost";
$username = "bob";
$dbname = "bobs_db";
$password = "opensesame";
$db->connect( $host, $dbname, $username, $password );
如果成功,则运行查询:
$query = "SELECT username, name, age FROM users";
$db->query( $query );
$users = $db->fetch_all();
// Go through users using a foreach
要在每页显示20个用户,您需要执行所谓的分页,该分页使用MySQL的LIMIT关键字。一旦您提供更多信息,就会为此答案添加更多内容。