【问题标题】:PHP Script to fetch new row from mysql on every script executionPHP脚本在每次脚本执行时从mysql获取新行
【发布时间】:2014-07-23 09:16:23
【问题描述】:

我有一个简单的 my-sql 表:

+----+----------+----------+-------------+-----------+
| id | Name    | Father    | National   | Value     |
+----+----------+----------+-------------+-----------+
|  1 | Daniel  | David    | American    |         0 |
|  2 | Rebbeka | Craig    | American    |         0 |
|  3 | Robert  | John     | American    |         0 |
|  4 | Arjun   | Daneil   | Indian      |         0 |
|  5 | Ana     | Peter    | British     |         0 |
+----+----------+----------+-------------+-----------+

每次执行时我都需要一个 php 脚本来查询和获取新的单行。它可能基于 ID。

关于代码/框架,我在 ubuntu 服务器上使用简单的 php5 和 mysql。

这是我的代码,问题是每次调用时它都会输出整个 Name,Father 列,我只想在每次执行时打印一行。并且在每次执行 php 脚本时,都应根据 id 升序打印一个新行。

<?php

$con = mysqli_connect('localhost','user','pass','database');

$result = mysqli_query($con,"select * from table");

while($row = mysqli_fetch_array($result)) {
        echo "Name:" . $row['name'] . " " . "Father's Name:" . $row['father'];
        echo "<br>";
}

mysqli_close($con);

?>

非常感谢每一个帮助。

【问题讨论】:

  • 你尝试过什么吗?你用的是什么数据库?有什么框架吗?
  • 至少尝试一下并发布问题..
  • 我认为在您编辑问题之前,您应该阅读How do I ask a good question?
  • :D 你刚刚更新了它......现在我已经根据最后的编辑回答了...... :) 希望你喜欢它
  • 我需要这两种方式。

标签: php mysqli row


【解决方案1】:

以下代码将帮助您获得输出。 下次当您提出任何问题时,请添加您的代码。

$link = mysqli_connect("localhost","root","","test") or die("Error " . mysqli_error($link));

$query = "SELECT * FROM `emp` ORDER BY RAND() LIMIT 0,1;" or die("Error in the consult.." . mysqli_error($link));

$result = mysqli_query($link, $query);

//display information:
$row = mysqli_fetch_array($result);

  echo $row["name"].$row["Father"].$row["National"].$row["Value"];

【讨论】:

    【解决方案2】:

    由于我没有详细说明您拥有什么类型的代码/框架,所以我根据我的理解给您一个答案

    我可以想到两种获取数据的方法

    1.

    更改表结构并添加一个名为lastFetched 的列,每次获取行时将特定行更新为1,否则将其他所有内容更新为0,以便下次获取行时已经知道哪一行是您提取的最后一行。你可以对它做一个增量。

    2.

    在您获取结果的页面上会有一个隐藏的输入,您可以在其中存储最后一个数据编号,让我们说页面加载时第一次是0

    那么您的查询将是

    SELECT * from <tablename> LIMIT 0,1 
    

    并将隐藏输入的值增加到+1 所以下次你获取结果时会给出查询

    SELECT * from <tablename> LIMIT 1,2 
    

    【讨论】:

    • 请问如何在 php5 中做到这一点?
    • 你想用1还是2去哪一个
    • 我正在为此添加一个新答案
    【解决方案3】:

    根据我们在 cmets 中的讨论,我得出的结论是您正在寻找这个。

    <table>
    <tr>
    <?php
    if(isset($_POST['pullNextRecord'))
    {
        $whtrec=$_POST['whatrecord'];
        $con = mysqli_connect('localhost','user','pass','database');
        $result = mysqli_query($con,"select * from table LIMIT $whtrec, ++$whtrec");
        echo "<input type='hidden' name='whatrecord' value=".$whtrec." />";
        echo "<th>Name</th><th>Fathers Name</th></tr><tr>";
        while($row = mysqli_fetch_array($result)) 
        {
            echo "<td>$row['name']</td><td>$row['father']</td>";
        }
        mysqli_close($con);
    }
    ?>
    <input type="submit" name="pullNextRecord" /> 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-13
      • 1970-01-01
      • 1970-01-01
      • 2010-12-19
      • 2013-03-12
      • 2011-07-20
      相关资源
      最近更新 更多