【发布时间】:2013-03-29 17:35:55
【问题描述】:
所以,我有这个 PHP 文件,它以 JSON 形式回显数据:
这是PHP:
// Recieved the user id:
$userId = $_POST['userId'];
// Create connection
$con = mysqli_connect("123.com", "123", "123", "123", "1234");
// Check connection
if (mysqli_connect_errno($con)) {
echo "Failed to connect to database " . mysqli_connect_error();
}
// Work with the database to grab user statistics..
$getQuizMode = "SELECT `QuizModeScore` FROM `userstats` WHERE UserId = $userId";
$getChallengeMode = "SELECT `ChallengeModeScore` FROM `userstats` WHERE UserId = $userId";
$quizModeData = mysqli_query($con, $getQuizMode);
$challengeModeData = mysqli_query($con, $getChallengeMode);
// Build the response
$arr = array('Quiz' => $quizModeData, 'Challenge' => $challengeModeData);
// echo the json back:
echo json_encode($arr);
现在这是我的客户端 javascript:
var variableToSend = "109607962907537440488";
$.post('manageUserStats.php', {userId: variableToSend}, function(data){
console.log("Got these user stats: ", data);
});
当我看到控制台时,我看到它已记录:
Got these user stats: {"Quiz":{"current_field":null,"field_count":null,"lengths":null,"num_rows":null,"type":null},"Challenge":{"current_field":null,"field_count":null,"lengths":null,"num_rows":null,"type":null}}
但是,我想获取此处显示的数据:
我做错了什么?为什么我不能只得到这两个数字?
【问题讨论】:
-
获取数据后,您不会对数据进行任何操作。查看
mysql_fetch_assoc从结果资源中提取数据。此外,您不会清理输入,因此您对 SQL 注入持开放态度,您应该远离mysql_函数。 ^^ -
提示:从一个查询/值开始。让它工作。然后添加第二个查询。提示2:使用mysqli的OO接口。
-
提示 #3,您的两个结果都来自具有相同 Id 的同一张表,在一个查询中选择它们,不要浪费资源进行第二次查询。
-
回显已发布的 userId 并查看是否正确。确保查询中的列拼写正确。显然查询没有返回结果。
-
@Daniel 不正确,看代码,看cmets,回答到目前为止。不要将 OP 指向错误的方向。
标签: php javascript mysql json mysqli