1

PHP から入力するスピナーに問題があります。都市とクラスを含むMySQLテーブルがあります。特定の都市から授業を受ける必要があります。都市の PHP は次のようになります。

{"lista":[{"City":"Beograd"},{"City":"Novi Sad"},{"City":"Kragujevac"}]}

「Novi Sad」のクラスをスピナーに入力しようとすると、アンドロイドでエラーが発生します

08-09 09:53:37.762: E/Fail 1(28592): java.lang.IllegalArgumentException: Illegal character in query at index 50: http://192.168.1.2/test/test.php?city=Novi%20Sad

http://192.168.1.2/test/test.php?grad=Novi%20Sadローカルホストを呼び出すと、 {"lista":[{"Class":"matematika"},{"Class":"informatika"}]}. スピナーに City: Beograd または Kragujevac を入力しようとすると、すべて正常に動作します。問題は Novi と Sad の間の空きスペースにあると推測しています。

spinner1(Cities) から spinner2 を設定するための URL:

str_grad1=spinner1.getSelectedItem().toString();
String url="http://192.168.1.2/test/test.php?grad="+str_grad1;  

編集:ここにもPHPスクリプトがあります

$con = mysqli_connect($host, $user, $pwd, $db);

if(mysqli_connect_errno($con)) {
    die("Failed to connect to MySQL: " . mysqli_connect_error());
} 

$sql = "SELECT Predmet FROM lista where City='".$_GET['grad']."'";

$result = mysqli_query($con, $sql);

$rows = array();

while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {

        $rows[] = $row; 
    }

mysqli_close($con);

$arr = array_flip(array_map('serialize', $rows));
$lista = array_map('unserialize', array_flip($arr));
echo json_encode((object) array('lista' => array_values($lista)));
4

1 に答える 1