PHP函数总是返回false
我想知道为什么返回的结果总是PHP函数总是返回false,php,mysql,json,Php,Mysql,Json,我想知道为什么返回的结果总是false SQL和PHP代码如下所示: public function getAlbumList($userID){ $albumIDs= mysql_query("SELECT albumID FROM albumAccess WHERE userID='$userID'"); //$albums = mysql_query("SELECT albums.* FROM albums WHERE albumAccess.userID = '$user
false
SQL和PHP代码如下所示:
public function getAlbumList($userID){
$albumIDs= mysql_query("SELECT albumID FROM albumAccess WHERE userID='$userID'");
//$albums = mysql_query("SELECT albums.* FROM albums WHERE albumAccess.userID = '$userID' AND albumAcess.albumID = albums.albumID");
if($albumIDs){
$albums=array();
while($r = mysql_fetch_array($albumsIDs)){
$albums[]=mysql_query("SELECT * FROM albums WHERE albumID = '$r'");
}
return mysql_fetch_array($albums);
}else{
return false;
}
}
获取结果并将其传递给android应用程序的PHP代码如下:
$userID=$_POST['userID'];
$albumList = $db->getAlbumList($userID);
if($albumList){
$response["success"]=1;
$response['album']=array();
while($r = mysql_fetch_assoc($albumList)){
$response['album'][]= $r;
}
header('Content-type: text/json');
echo json_encode($response);
} else {
//album list failed to be loaded
$response["error"]=2;
$response["error_msg"]="Error Loading Album List. Please try again later.";
header('Content-type: text/json');
echo json_encode($response);
}
当我检查返回内容的日志时,总是会收到错误消息
“加载相册列表时出错”
但是,只有当我试图返回数组时,我才得到它。如果我只返回
true
而不使用第二个SQL REQUEST,它将返回true。您在这里做错了,请查看此更改
$albumIDs= mysql_fetch_row(mysql_query("SELECT albumID FROM albumAccess WHERE userID='$userID'")); //changed this line
while($r = mysql_fetch_array($albumsIDs)){
$row=mysql_query("SELECT * FROM albums WHERE albumID = '$r'");
$albums[]=mysql_fetch_row($row); //added this line
}
问题出在第一个函数中:
public function getAlbumList($userID){
$albumIDs= mysql_query("SELECT albumID FROM albumAccess WHERE userID='$userID'");
//$albums = mysql_query("SELECT albums.* FROM albums WHERE albumAccess.userID = '$userID' AND albumAcess.albumID = albums.albumID");
if($albumIDs){
$albums=array();
while($r = mysql_fetch_array($albumsIDs)){
$statement=mysql_query("SELECT * FROM albums WHERE albumID = '$r'");
$albums[]=mysql_fetch_row($statement);
}
return $albums;
}else{
return false;
}
}
以下行获取用户id不正确:
$albums[]=mysql_query("SELECT * FROM albums WHERE albumID = '$r'");
但您必须使用:
$albums[]=mysql_query("SELECT * FROM albums WHERE albumID = '".$r['albumID']."'");
同时,请更改以下内容:
while($r = mysql_fetch_array($albumsIDs)){
$statement=mysql_query("SELECT * FROM albums WHERE albumID = '$r'");
$albums[]=mysql_fetch_row($statement);
}
return $albums;
再见!
马可试试这个功能
public function getAlbumList($userID){
$albumIDs= mysql_query("SELECT albumID FROM albumAccess WHERE userID='$userID'");
if($albumIDs){
$albums=array();
while($r = mysql_fetch_array($albumsIDs)){
$second = mysql_query("SELECT * FROM albums WHERE albumID = '".$r['albumID']."' ");
$alb = mysql_fetch_array($second) ;
$albums[]= $alb['your_column_you_want_fetch'];
}
return $albums;
}else{
return false;
}
}
您还可以尝试使用联接或子查询:
public function getAlbumList($userID){
$albumIDs= mysql_query("SELECT *
FROM albums
WHERE albumID IN (
SELECT albumID FROM albumAccess WHERE userID='$userID'
)");
if(mysql_numrows($albumIDs) > 0){
$albums=array();
while($r = mysql_fetch_array($albumsIDs)){
$albums[] = $r;
}
return $albums;
}
return false;
}
PHP代码:
$albumList = $db->getAlbumList($userID);
if($albumList){
$response["success"]=1;
$response['album'] = $albumList;
} else {
//album list failed to be loaded
$response["error"]=2;
$response["error_msg"]="Error Loading Album List. Please try again later.";
}
header('Content-type: text/json');
echo json_encode($response);
首先,你确定有什么东西要归还吗?另外,在mysql_查询之后,可能添加一个“or die”(json_encode(array('errors'=>array('Internal issue:'=>mysql_error($conn‘)'));),以查看数据库连接是否存在问题,我正在查看表,并确保发送的userID与存在的内容和相册id匹配。第二部分是否没有问题?我仍然收到相同的错误消息,这意味着它返回的是错误的。非常感谢。我现在获得了成功,但是我的数组显示为0哦,让我更改代码的显示部分。