2017-10-09 193 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."'";