【问题标题】:PHP Ajax return more than one row from database [duplicate]PHP Ajax从数据库返回多行[重复]
【发布时间】:2014-10-02 18:36:48
【问题描述】:

我编写了一些 PHP 和 Ajax 代码,以便在输入位置名称时查看我的库存。这是我的库存图片。请注意,大多数位置都包含不止一种物品。

这是我的前端界面。

这是我遇到问题的代码部分。

<?php
    // '.post' could be '.get' here but global.js has to be the same, .post is faster
    if(isset($_POST['name']) === true && empty($_POST['name']) === false) {
        require '../db/connect.php';

        $query = mysql_query("
            SELECT `sheet0_100`.`id`
            FROM `sheet0_100`
            WHERE `sheet0_100`.`location` = '" . mysql_real_escape_string(trim($_POST['name'])) . "'
        ");
        echo (mysql_num_rows($query) !== 0) ? mysql_fetch_row($query) : 'Location not found..';


    }
?>

如果你注意到 mysql_fetch_row 部分,当我输入一个位置时,例如,50A-3,它返回一个单词“Array”而不是记录。这些位置的相同结果具有多行。我想知道我与 $query 有什么关系,以便网页可以显示某个位置的所有行?谢谢!

【问题讨论】:

  • 首先停止使用 mysql_*。它已被弃用。 mysql_fetch_row 返回数组,所以你可以使用 echo print_r(mysql_fetch_row($query),1);如果你想看它
  • 您还需要迭代整个结果集。在每个上调用 fetch_row。

标签: php jquery mysql ajax


【解决方案1】:

如果您必须使用 mysql_* 扩展函数,为了检索并显示多行,请使用 while 循环:

<?php
// '.post' could be '.get' here but global.js has to be the same, .post is faster
if(isset($_POST['name']) === true && empty($_POST['name']) === false) {
    require '../db/connect.php';

    $query = mysql_query("
        SELECT `sheet0_100`.`id`
        FROM `sheet0_100`
        WHERE `sheet0_100`.`location` = '" . mysql_real_escape_string(trim($_POST['name'])) . "'
    ");

    if(mysql_num_rows($query) !== 0){
        while ($row = mysql_fetch_row($query)) {
            // output results using the $row array
        }
    }
    else {
        echo('Location not found..');
    };          

}
?>

mysql_fetch_row 一次获取每一行

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-10
  • 1970-01-01
  • 2013-04-01
  • 1970-01-01
  • 2021-02-25
  • 2013-04-23
  • 1970-01-01
相关资源
最近更新 更多