如何在php中自动增加mysql限制命令


How to auto increment mysql Limit command in php

我需要一次显示mysql表行,我在php中使用:

$result = mysqli_query($con,"select * from table limit 0,1");
while($row = mysqli_fetch_array($result)) {
    echo "First Name:" . $row['First'] . " " . "Last Name:" . $row['Last'];
    echo "<br>";
}

我需要一次显示一行,但在每次php执行时显示每个新行,例如第一个用户可以看到第一个"firstname, lastname",第二个匿名用户在执行页面时可以从数据库中看到第二个"firstname, lastname"。

给出一个错误:

$result = mysqli_query($con,"select * from voucher limit '$count',1");

(我在参数中包含了$count)

在执行时,每次只显示第一行。我需要修改它,无论何时执行代码,它返回一个新的行值。例如,第一次输出第一行,第二次执行脚本时输出第二行,依此类推。

我在ubuntu服务器上使用php5, mysql .

请帮。

有两种方法:第一种方法是将增量值保存在某处。我不知道你如何传递它或何时以及如何执行它,但如果它们每次单独运行(例如通过cron作业或终端运行),你可以将值保存在一个简单的文件或memchache中。

第一种方式:

$offset = file_get_contents('my_counter.txt');
$offset++;
$result = mysqli_query($con,"select * from table limit " . (int) $offset . ",1");
file_put_contents('my_counter.txt', $offset);

下一个是保存行中最后一个id:

$lastID = file_get_contents('my_counter.txt');
if($lastID == "") // First call and no last id
    $lastID = 0;
$result = mysqli_query($con,"select * from table WHERE ID > " . (int) $lastID . " limit 0,1");
while($row = mysqli_fetch_array($result)) {
     echo "First Name:" . $row['First'] . " " . "Last Name:" . $row['Last'];
     $lastID = $row['ID']; // Your autoincrement row
}
file_put_contents('my_counter.txt', $lastID);

我希望我理解对了你的问题,这对你有帮助。

由于您希望在php code运行时检索数据,因此需要对代码中的循环进行计数,并像下面这样增加值。

如果要循环,则需要增加LIMIT 0,1

中的0

像这样的循环

LIMIT " . $loopcount . ",1
LIMIT " . $loopcount . ",1
LIMIT " . $loopcount . ",1

我不是php程序员,所以我不知道确切的代码。

你可以如果你只是需要一个随机的,而不是下一个,使用SELECT * FROM table ORDER BY RAND() LIMIT 1

这只是给出一个随机的记录,你不会到表外,因为它总是从表中选择一条记录。

如果您有一个大的表,它会影响您的性能。但你总会有记录的。如果只循环LIMIT " . $loopcount . ",1,就有可能尝试在表范围之外进行选择。如果您有100行,并尝试LIMIT 101,1,您将得到一个空的记录集。

试试这个

$result = mysqli_query($con,"select * from table ORDER BY RAND() LIMIT 1");
while($row = mysqli_fetch_array($result)) {
   echo "First Name:" . $row['First'] . " " . "Last Name:" . $row['Last'];
echo "<br>";
}