【问题标题】:give a unique number from 1 to 200 for each row? assign a number for each row为每一行提供一个从 1 到 200 的唯一数字?为每一行分配一个数字
【发布时间】:2018-07-12 16:23:48
【问题描述】:

我有这个小代码来显示 200 行,我想根据票数给每一行一个数字。
我该怎么做? 这是我想到的,但它不起作用。

 $sql = 'SELECT * FROM table LIMIT 200;
    $result = mysqli_query($conn, $sql);
    while($row = mysqli_fetch_assoc($result)) {
    $row = 1;
    echo $row++;
       echo $row['fullname'];
       echo '<br>';
    }

输出使所有行输出为 1。

编辑: 好的,所以一些答案完成了工作,但它不适用于分页。它从第 2、3、4、5 页上的 1 开始计数......这是代码。

<?php
$sql = "SELECT * FROM table";
$result = mysqli_query($conn, $sql);
$result_per_page = 20;
$no_of_result = mysqli_num_rows($result);

$no_of_page = ceil($no_of_result/$result_per_page);


if(!isset($_GET['page'])){
   $page = 1;
}else{
   $page = $_GET['page'];
}

$page_first = ($page-1)*$result_per_page;

$sql = 'SELECT * FROM table LIMIT ' . $page_first . ',' . $result_per_page;
$result = mysqli_query($conn, $sql);
$num = 1;
while($row = mysqli_fetch_assoc($result)) {
echo $num++;
   echo $row['fullname'];
   echo '<br>';
}

for($page=1;$page<=$no_of_page;$page++){
   echo '<a href="/?page='.$page.'">'.$page.'</a>';
   echo ' ';
}

?>

【问题讨论】:

  • 在上面的while循环中设置$number =1;并在while循环右括号之前增加$number++,如$number=1; while(logic){ echo $number; $number++;}
  • 您不能使用变量$row 来保存计数器和从数据库查询返回的结果集。您需要两个不同的变量。
  • @Mark 请检查更新的 cmets
  • @Mark 你现在正在改变你问题的基础。不要那样做。
  • @Mark 的意思是在分页 2 页面上它将从 1 开始正确吗?

标签: php mysql row


【解决方案1】:

试着逐行阅读你的代码,看看它做了什么。

while($row = mysqli_fetch_assoc($result)) { # > Set variable $row to the next result set or exit when there are none.                                   
  $row = 1;                                 #  Set variable $row to value 1. 
  echo $row++;                              #  Increment variable $row to + 1.
  echo $row['fullname'];                    #  Row is now an integer, not an array. (You did that 2 statements ago)
  echo '<br>';                              #
} // end of loop, start again --------------|

解决方案是:

$id = 1;
while($row = mysqli_fetch_assoc($result)) { 
  echo $id++;
  echo $row['fullname'];
  echo '<br>';
}

至于页面,您正在覆盖之前的值:

for($s=$page;$s<=$no_of_page;$s++){
 echo '<a href="/?page='.$s.'">'.$s.'</a>';
 echo ' ';
}

【讨论】:

  • 嘿,它确实有效,但它不适用于分页。检查编辑
猜你喜欢
  • 2022-01-23
  • 2017-07-10
  • 2010-10-10
  • 2015-10-03
  • 1970-01-01
  • 1970-01-01
  • 2015-02-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多