2017-10-09 155 views
-2

好的,你好。所以我试图创建一个Android应用程序,使用MySQL数据库来生成一个RecylerView。为了获得数据,我在同一台服务器上使用PhP文件存储。但我想扩展应用程序。现在如果我打电话给这条线:$query = 'SELECT * FROM items WHERE catid = "$catid"';结果是空的。PhP MySQL“WHERE”查询返回null /为空

奇怪的事情是:如果我在PhPMyAdmin中输入查询,它会显示正确的结果。

下面是完整的PHP-文件(数据库登录删除)(Annnd强制性免责声明:我的英语不流利,所以请原谅一些错别字C :)

编辑:我觉得有些人missunderstood:问题不在于Android ..我确定。而“生成” ..只是忽略我不知道我会用什么样的词。所以这个问题是只在PHP文件

<?php 
$connection = mysqli_connect("","","",""); 

$type = $_GET["t"]; 

if($type == "categorys"){ 
    $query = "SELECT * FROM categorys"; 
}else{ 
    $catid = $_GET["id"]; 
    $query = 'SELECT * FROM items WHERE catid = "$catid"'; 
} 

$result = mysqli_query($connection,$query); 


while ($row = mysqli_fetch_assoc($result)) { 
    $array[] = $row; 
} 

header('Content-Type:Application/json'); 
echo json_encode($array); 
?> 
+0

确定'$ catid'具有价值? –

+0

* ...使用MySQL数据库生成RecylerView ... * MySQL不能“生成”RecylerView',因为它对Andorid平台一无所知 – Selvin

+0

@Selvin我猜这是REST的服务器端API,而不是从PHP脚本动态生成'RecyclerView.Adapter'(这是不可能的) –

回答

1

写这个样子,与double-quotes

$query = "SELECT * FROM items WHERE catid = $catid"; 

如果CATID是一个字符串,然后:

$query = "SELECT * FROM items WHERE catid = '$catid'"; 

无论如何,你应该使用prepared statement

0

试试这个:

$query = "SELECT * FROM items WHERE catid = '$catid'"; 

或:

$query = "SELECT * FROM items WHERE catid = '".$catid."'";