我需要一次显示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>";
}