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)));