没有从使用PHP的Json_encode获得响应
我试图让这个代码工作,但我似乎无法理解它。。。我正在尝试连接多个表,并从用户名>播放列表>曲目中获取json输出 我放错东西了吗?我对这一级别的编码还相当陌生,仍在努力让我的头脑专注于它,所以任何帮助都将不胜感激 多谢各位没有从使用PHP的Json_encode获得响应,php,mysql,json,Php,Mysql,Json,我试图让这个代码工作,但我似乎无法理解它。。。我正在尝试连接多个表,并从用户名>播放列表>曲目中获取json输出 我放错东西了吗?我对这一级别的编码还相当陌生,仍在努力让我的头脑专注于它,所以任何帮助都将不胜感激 多谢各位 <?php // variable in which to store your results to be serialize $result_array = array(); // some index and temp variables we will
<?php
// variable in which to store your results to be serialize
$result_array = array();
// some index and temp variables we will use to build the data structure
$current_user_id = 0;
$user_idx = -1;
$current_playlist_id = 0;
$playlist_idx = -1;
//Create Database connection
$db = mysql_connect("localhost","USERNAME","PASSWORD");
if (!$db) {
die('Could not connect to db: ' . mysql_error());
}
//Select the Database
mysql_select_db("DATABASE",$db);
// Your database fetch logic here.
// I have not shown where actual query would be made.
// The query would obviously need to succeed before getting to this code.
// Note that you REALLY should be considering mysqli or PDO here
// instead of deprecated mysql extension.
while($row =
//Replace * in the query with the column names.
$result = mysql_query("SELECT
u.`idu` AS `user_id`,
u.`username` AS `user_name`,
u.`first_name` AS `first_name`,
u.`last_name` AS `last_name`,
u.`country` AS `user_country`,
u.`image` AS `user_image`,
u.`cover` AS `user_cover`,
u.`description` AS `user_description`,
pl.`id` AS `playlist_id`,
pl.`name` AS `playlist_name`,
t.`id` AS `track_id`,
t.`title` AS `track_title`,
t.`name` AS `track_name`,
t.`art` AS `track_art`,
t.`likes` AS `track_likes`,
t.`downloads` AS `track_downloads`,
t.`views` AS `track_plays`
FROM users AS u
INNER JOIN playlists AS pl
ON u.idu=pl.by
INNER JOIN playlistentries AS ple
ON pl.id=ple.playlist
INNER JOIN tracks AS t
ON ple.track=t.id
ORDER BY `user_id` ASC, `playlist_id` ASC, `track_id` ASC
LIMIT 10", $db)
) {
// is this a new user?
$user_id = (integer)$row['user_id'];
if($user_id !== $current_user_id) {
// manage our indexes
$current_user_id = $user_id;
$user_idx++;
$playlist_idx = -1;
// start a new object to store data for this user
$user_obj = new stdClass();
// set properties on user from current row
// name these properties whatever you want for final JSON structure
$user_obj->idu = $current_user_id;
$user_obj->username = $row['user_name'];
$user_obj->first_name = $row['first_name'];
$user_obj->last_name = $row['last_name'];
$user_obj->country = $row['user_country'];
$user_obj->image = $row['user_image'];
$user_obj->cover = $row['user_cover'];
$user_obj->description = $row['user_description'];
$user_obj->playlists = array();
// set object in overall result array
$result_array[$user_idx] = $user_obj;
}
// does this playlist already exist for this user?
$playlist_id = (int)$row['playlist_id'];
if($playlist_idx === -1 || $playlist_id !== $current_playlist_id ) {
// manage our indexes
$current_playlist_id = $playlist_id;
$playlist_idx++;
// start a new object to store data for this user
$playlist_obj = new stdClass();
// set properties on playlist from current row
// name these properties whatever you want for final JSON structure
$playlist_obj->id = $current_playlist_id;
$playlist_obj->name = $row['playlist_name'];
$playlist_obj->by = $current_user_id;
$playlist_obj->tracks = array();
// set object in overall result array
$result_array[$user_idx]->playlists[$playlist_idx] = $playlist_obj;
}
// create track object
// we do this for every row
$track_obj = new stdClass();
$track_obj->id = $row['track_id'];
$track_obj->title = $row['track_title'];
$track_obj->name = $row['track_name'];
$track_obj->art = $row['track_art'];
$track_obj->likes = $row['track_likes'];
$track_obj->downloads = $row['track_downloads'];
$track_obj->plays = $row['track_plays'];
$track_obj->uid = $current_user_id;
// set track object in result set
$result_array[$user_idx]->playlists[$playlist_idx]->tracks[] = $track_obj;
}
// serialize to JSON
$result_json = json_encode($result_array);
?>
如果您echo$result\u json
在$result\u json=json\u encode($result\u数组)之后代码>?如上所述,您似乎没有对结果执行任何操作您正在初始化大量变量以填充数组,很可能会产生难以发现的错误。只是一个建议,尝试对PDO()执行同样的操作。它将更少的代码、更整洁和更少的混乱。@FirstOne nothing,页面只显示两个括号“[]”您的select
是否返回了任何内容?我的意思是,它在输入的同时
?添加一个回显“某物”
在//这是新用户吗?
如果没有显示任何内容,请尝试在php之外进行查询(phpmyadmin或其他)。另外,为了让它更容易看到发生了什么,考虑创建一个变量来保存查询字符串,例如“代码> $Que= = [您的选择] < /代码>,并使用<代码> MySqLyQualy($Qualy)。如果代码> ECHE$RESUTTJJSON,会发生什么情况?code>在$result\u json=json\u encode($result\u数组)之后代码>?如上所述,您似乎没有对结果执行任何操作您正在初始化大量变量以填充数组,很可能会产生难以发现的错误。只是一个建议,尝试对PDO()执行同样的操作。它将更少的代码、更整洁和更少的混乱。@FirstOne nothing,页面只显示两个括号“[]”您的select
是否返回了任何内容?我的意思是,它在输入的同时
?添加一个回显“某物”
在//这是新用户吗?
如果没有显示任何内容,请尝试在php之外进行查询(phpmyadmin或其他)。另外,为了让它更容易看到发生了什么,考虑创建一个变量来保存查询字符串,例如“代码> $Que= = [您的选择] < /代码>,并使用<代码> MySqLyQualy($Qualy)< /C>。