PHP Ajax从数据库返回多行

时间:2014-10-02 18:36:48

标签: php jquery mysql ajax

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

enter image description here

这是我的前端界面。 enter image description here

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

<?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 ,以便网页可以显示某个位置的所有行?谢谢!

1 个答案:

答案 0 :(得分: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一次提取一行