Php 如何在一个字符串中选择数据库限制5和其他限制中的行?
好的,首先对不起我的英语不好,我会尽力更好地解释我需要什么Php 如何在一个字符串中选择数据库限制5和其他限制中的行?,php,mysql,sql,select,rows,Php,Mysql,Sql,Select,Rows,好的,首先对不起我的英语不好,我会尽力更好地解释我需要什么 Name Number tid 1 topic1 25 1 2 topic2 23 1 3 topic3 20 1 4 topic4 19 1 5 topic5 17 1 6 topic6 15 1
Name Number tid
1 topic1 25 1
2 topic2 23 1
3 topic3 20 1
4 topic4 19 1
5 topic5 17 1
6 topic6 15 1
7 topic7 12 1
8 topic8 9 1
现在我想用一个字符串显示numeber的前5个订单和其他6,7,8,如下所示
1 topic1 25 1
2 topic2 23 1
3 topic3 20 1
4 topic4 19 1
5 topic5 17 1
6 Other 15+12+9 1
你现在明白我需要什么了吗?
再一次为我糟糕的英语感到抱歉这是问题。。。。。但这是相当基本的。 试着自己记录MySQL的基础知识
SELECT * FROM table ORDER BY num ASC LIMIT 5
试试这个:
SELECT * FROM <tablename> ORDER BY num LIMIT 5;
SELECT*子句从表中的所有列请求适当的数据。例如,如果您只需要来自某些列的数据,例如id、name和num,则可以列出这些列,并用逗号而不是星号分隔
FROM子句指定获取数据的表的名称——因为我不知道您的表是什么,所以您必须将其放在自己的表中
ORDER BY和LIMIT执行它们听起来的操作—指定数据的排序方式,并限制查询返回的行数
我希望这有帮助!如果您正在查找有关SQL的基本信息,请查看您可以在php中使用MySQLi驱动程序: 使用get或post参数:
<?php
if( isset($_REQUEST['page']){
$page = $_REQUEST['page'];
}else{
$page = 1;
}
//connect to db
$db = new mysqli('host', 'user', 'pass', 'db');
if($db->connect_errno > 0){
die('Unable to connect to database [' . $db->connect_error . ']');
}
$query = "SELECT * FROM table ORDER BY num DESC";
if (!isset($_REQUEST['all'])){
$query = $query . " LIMIT 5 OFFSET " . 5 * ($page - 1);
}
if(!$result = $db->query($sql)){
die('There was an error running the query [' . $db->error . ']');
}
?>
<html>
<head>
...
</head>
<body>
<table>
<tr>
<th>Name</th>
<th>Num</th>
<th>Id</th>
</tr>
<tbody>
<?php while($row = $result->fetch_assoc()){ ?>
<tr>
<td><?php $row['name'] ?></td>
<td><?php $row['num'] ?></td>
<td><?php $row['id'] ?></td>
</tr>
<?php } ?>
</tbody>
</table>
<?php
$result->free();
$db->close();
?>
<a href="?all">all</a>
<a href="?page=<?php $page - 1 ?>">prev</a>
<a href="?page=<?php $page + 1 ?>">next</a>
...
</body>
</html>
如果我没有错过任何东西,它应该会起作用
如果我理解错了,请告诉我,我希望这会对您有所帮助。听起来可行,尝试了任何方法??我只想在一个字符串中显示一个表中该TopicidId的前5行以及该主题的所有其他值。我们知道您想要什么,但您必须做出选择effort@user2103071你的代码在哪里?对于一个字符串中的主题和所有其他值,您的意思是什么?您遇到的最大问题是,第3列是前5行的数字,但第6行是varchar。可以将整个列视为varchar,运行两个使用UNION ALL连接在一起的查询,并在第二个查询中使用GROUP_CONCATNumber分隔符“+”将数字连接在一起,但这过于复杂,如果您只运行两个查询并在应用程序中将它们连接在一起,会简单得多。我知道,但其他值将显示我的前五个,但其他值?阅读我的评论你的意思是其他的应该在布局中以不同的方式显示?