从MySQL检索多个列到Jquery并输出为表

时间:2013-12-19 19:23:11

标签: php mysql sql jquery

这是一个初学者的问题,我已经成功设置了一个基于搜索返回LOCATION列的本地数据库。

我想了解的是PHP文件中的哪部分代码可以操作以将该搜索中的多个/所有列返回到多列div表,而不仅仅是LOCATION列。我已经玩过使用*代替LOCATION,但在搜索时遇到'意外*第11行'错误。

任何指针都会有很大用处,可以帮助我更好地理解基础知识。

JS档案

$('input#name-submit').on('click', function() {
var name = $('input#name').val();
if ($.trim(name) != '') {
$.post('ajax/name.php', {name: name}, function(data) {
  $('div#name-data').text(data);  
});
}

});

PHP文件(name.php)

<?php
if (isset($_POST['name']) === true & empty($_POST['name']) === false) {
require '../db/connect.php';

$query = mysql_query("
SELECT `LOCATION`
FROM `table 3`
WHERE `table 3`.`ARTIST` = '" . mysql_real_escape_string(trim($_POST['name'])) . "'
");

echo (mysql_num_rows($query) !== 0) ? mysql_result($query, 0, `LOCATION`) : 'Name    not found';
}

1 个答案:

答案 0 :(得分:2)

您当前正在从MySQL结果中返回单个项目(一行中的一列)。您需要修改代码,以便返回多个项目。在下面的示例中,来自两列的数据以JSON格式发送回JQuery脚本,因为解析它很容易。

<?php
if (isset($_POST['name']) === true & empty($_POST['name']) === false) {
    require '../db/connect.php';
    $sql = "SELECT 
                `LOCATION`, `SOME_OTHER_COLUMN`
            FROM 
                `table 3`
            WHERE 
                `table 3`.`ARTIST` = '" . mysql_real_escape_string(trim($_POST['name'])) . "'";
    $result = mysql_query($sql);
    if ( mysql_num_rows($query) !== 0 ) {
        $data = json_encode(mysql_fetch_assoc($query));
        echo $data;
    }
}
?>

如果你想在将数据发送回JQuery之前在PHP中格式化数据,你可以这样做:

if ( mysql_num_rows($query) !== 0 ) {
    while ( $row = mysql_fetch_assoc($query) ) {
        $data = 'Blah blah '.$row['LOCATION'].' blah, blah '.$row['SOME_OTHER_COLUMN'];
    }
    echo $data;
}