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

如何在php中自动增加mysql Limit命令,php,mysql,limit,Php,Mysql,Limit,我需要一次显示一行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>"; } (我在参数中包括$cou

我需要一次显示一行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>";
}
(我在参数中包括$count)

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

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

请帮忙。

试试这个

$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>";
}
$result=mysqli_query($con,“按RAND从表顺序中选择*限制1”);
while($row=mysqli\u fetch\u数组($result)){
回显“名字:”.$row['First']。“姓氏:”.$row['Last'];
回声“
”; }
由于希望在运行
php代码时检索数据,因此需要对代码中的循环进行计数,并按如下所示递增值

如果要循环,需要在
限制0,1

像这样的循环

LIMIT " . $loopcount . ",1
LIMIT " . $loopcount . ",1
LIMIT " . $loopcount . ",1
我不是php程序员,所以我不知道确切的代码

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

这只会给出一条随机记录,您不会跳出表外,因为它总是从表中选择一条记录


如果你有一张大桌子,它会影响你的表现。但你总会有记录的。如果您只是循环
限制“$loopcount.”,1
您就有可能尝试在表范围之外进行选择。如果您有100行,并且尝试
限制101,1
,您将得到一个空记录集。

您可以通过两种方式来实现: 第一个是将增量值保存在某个地方。我不知道如何传递它,或者何时以及如何导出它,但如果它们每次单独运行(例如,通过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);

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

只需删除限制,或者与
ORDER BY RAND()limit 1一起尝试。他希望每次代码运行时都显示一条新记录。这样做是否正确?否这将显示表中的所有记录。他想要1条新记录/加载我不是php程序员,所以我不确定。这不会增加我认为的价值。它基于php代码执行的时间,因此我认为这将始终提供相同的记录,因为它只是一次刷新。我认为最好的方法是使用
SELECT*FROM table ORDER BY RAND()LIMIT 1
是的,这正是我想要实现的,我如何在php中做到这一点?Martin如何执行这部分:echo$lastID;文件内容('/var/www/my_counter.txt',$lastID);用户单击后,只需在表单提交操作中添加代码:)例如,如果我们在您的操作中有://您的输入,则您将有If(isset($\u GET['action'])&&&$\u GET['action']=='save\u user'){//DO your save here}我有一个表单字段,描述为:如何添加多个操作,我应该将其保存在包含此表单的文件中,还是创建一个新文件来验证该操作。您可以检查此url:基本上,我按顺序生成“名称”和“父名称”,并将输出提供给变量,然后将其放入表单输入中,然后链接到动作文件。我已经将我们讨论过的代码放在了表单所在的同一个文件中。问题是每次刷新时$lastID都会增加。是否有任何方式,在页面刷新时,它不会增加,但在表单上,它应该提交,或者以其他方式提交。
$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);