-1

我正在尝试一些新的东西,它使用 PHP 和 Ajax 与 MySQL 数据库一起工作,以便在加载时将多个数据检索到 HTML 页面。

HTML:

 <div id="name">Mark</div>
 <br/>
 <input id="realcost" value=""></input>
 <p id="size"></p>
 <div id="#desc">description</div>

查询:

function get() {
$.getJSON('data.php', {
    name: $("#name").text()
}, function(data) {
    $("input#realcost").val(data.cost);
    $("p#size").text(data.size);
    $("#desc").text(data.details);
    'json'
});
}
get();

它的作用是从名称中获取文本,将其传递给 data.php 并检索值 #realcost、#size 和 #desc

PHP:

 <?php
 mysql_connect( "localhost", "username", "password");
 $name = mysqul_real_escape_string ($_POST['name']);
 $cost = mysql_qery ("SELECT cost FROM list.itemlist WHERE name='$name'");
 $size = mysql_qery ("SELECT size FROM list.itemlist WHERE name='$name'");
 $details = mysql_qery ("SELECT details FROM list.itemlist WHERE name='$name'");
 echo json_encode(array("cost" => $cost, "size" => $size, "details" => $details));

 ?>

不知道为什么我无法将数据检索到这些感觉中。

4

3 回答 3

2

该代码有很多错误,很难看出从哪里开始。

但是假设您在 php 文件中修复了语法错误,您实际上需要在进行 sql 查询后检索行,例如$name_row = mysql_fetch_assoc($name);.

我建议切换到 PDO 或 mysqli。

当然,您只需一次查询即可获得所有信息……

于 2012-06-30T14:12:30.397 回答
2

试试这个

<?php
 mysql_connect( "localhost", "username", "password");
 $name = mysql_real_escape_string ($_POST['name']);
$query = "SELECT cost, size, details FROM list.itemlist where name='$name'");
$row = mysql_fetch_assoc(mysql_query($query));

 echo json_encode(array("cost" => $row['cost'], "size" => $row['size'], "details" => $row['details']));

 ?>
于 2012-06-30T14:17:58.067 回答
1

因为您使用的是错误的函数 'mysql_qery'。

看到这个:

ini_set("display_errors", true);
mysql_connect( "localhost", "username", "password");
$name = mysql_real_escape_string ($_POST['name']);
$cost = mysql_query ("SELECT cost FROM list.itemlist WHERE name='$name'");
$size = mysql_query ("SELECT size FROM list.itemlist WHERE name='$name'");
$details = mysql_query ("SELECT details FROM list.itemlist WHERE name='$name'");
echo json_encode(array("cost" => $cost, "size" => $size, "details" => $details));

使用此行来确保显示错误:

ini_set("display_errors", true);

然后使用 firebug(Mozilla firefox 的插件)查看 php 文件的输出并检查错误。

您在获取数据时遇到了一些错误。
看到这个功能,也许有帮助......:

function getAllDATA($user, $pass, $host, $name = '')
{
    $conn = mysql_connect($user, $pass, $host);

    if (!$conn)
        return false;

    //@mysql_query("SET NAMES 'utf8' "); if you are using utf8 data

    $dbName = "DatabaseName");
    if (!mysql_select_db($dbname))
        return false;


    $data = array();

    $q = "SELECT cost FROM list.itemlist WHERE name='$name'";

    //echo $q;

    $result = mysql_query($q);

    //echo mysql_error();

    while($row = mysql_fetch_assoc($result))
        $data[] = $row;

    mysql_close($conn);

    self::$data = $data;

    return $data;
}
于 2012-06-30T14:11:42.170 回答