2014-11-22 68 views
0

我的數據庫查詢出現問題。當我嘗試拉空間轉換爲%20的行時,查詢返回null。我測試了其他行工作正常,爲什麼會發生此問題?我是否需要從每行中手動刪除%20以使其正常工作?MySql搜索查詢無法返回包含%20的行

謝謝!

database screenshot

<?php 

include_once 'includes/db_connect.php'; 

$query = "SELECT * FROM USERS WHERE LIKES= '$_GET[imgname]' "; 

//Creating resonse json array, with another array inside 
$jsonResponse = array("info" =>array()); 

if($result = mysqli_query($mysqli, $query)) { 
    while($row = mysqli_fetch_assoc($result)){ 

    $jsonRow = array(  

     'names'   =>  $row['USERNAME'], 
     'userIds'   =>  $row['USERID'] 

     );   

     //adding the $jsonRow array to the end of the "users" array as key/value 
     array_push($jsonResponse["info"], $jsonRow); 
    } 

} 
    //encoding to json for the app 
    echo json_encode($jsonResponse); 



?> 
+0

請張貼您的表格結構,以及5-10行樣本數據和預期結果。如果沒有這些,就很難確定你究竟在問什麼。 – AdamMc331 2014-11-22 16:27:28

+0

@ McAdam331 - 請查看我更新的問題。謝謝 – 2014-11-22 16:41:55

回答

0

更改您的SQL查詢:

$query = "SELECT * FROM USERS WHERE LIKES= '".rawurlencode($_GET[imgname])."' "; 

LIKES列有編碼的圖像路徑(空間轉換到%20)。因此,$_GET[imgname]應該被編碼以匹配數據庫記錄。

+0

感謝您的建議,但不幸的是,搜索查詢仍然返回null。 – 2014-11-23 11:18:47

+0

當我回應我得到的結果時:Crush%20Coffee%20House%2Fhaselnut_late.jpg - 第二個空間變成:%2F,而忽略'/'我想它是一個保留符號。我用過:$ strnew = str_replace('%2F','/',$ str);一個修復。謝謝! – 2014-11-23 11:38:59