2013-12-19 26 views
2

这是一个初学者的问题,我已经成功地建立了一个本地数据库,根据搜索返回LOCATION列。从MySQL检索多个列到Jquery并输出为表

我想了解的是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

'mysqli'折旧抗议者3,2,1 ... –

回答

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; 
} 
+0

这真是太棒了 - 没有考虑过JSON如何处理这个问题,所以它被证明非常有用。 – Byate