这是一个初学者的问题,我已经成功设置了一个基于搜索返回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';
}
答案 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;
}