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分隔符“+”将数字连接在一起,但这过于复杂,如果您只运行两个查询并在应用程序中将它们连接在一起,会简单得多。我知道,但其他值将显示我的前五个,但其他值?阅读我的评论你的意思是其他的应该在布局中以不同的方式显示?