Java アプリケーションからのクエリを処理するためにサーバー側で実行される PHP スクリプト。テーブルには、返される必要がある 450 の結果がありますが、何らかの理由で、ビジネスが見つからないステートメントに移動します..
テストのために、次の値を使用して Android アプリから HTTPGet に関する情報を送信します
varQuery2 は文字列で = 状態 varQuery1 は文字列で = MS
<?php
$result = mysql_query("SELECT * FROM businessdata WHERE '"
. mysql_real_escape_string($_REQUEST['varQuery2'])."' = '"
. mysql_real_escape_string($_REQUEST['varQuery1'])."'") or die(mysql_error());
// check for empty result
if (mysql_num_rows($result) > 0) {
// looping through all results
// businesses node
$response["businesses"] = array();
while ($row = mysql_fetch_array($result)) {
// temp user array
$business = array();
$business["bid"] = $row["idbusinessData"];
$business["name"] = $row["name"];
$business["owner"] = $row["owner"];
$business["phone_main"] = $row["phone_main"];
array_push($response["businesses"], $business);
}
// success
$response["success"] = 1;
// echoing JSON response
echo json_encode($response);
} else {
// no businesses found
$response["success"] = 0;
$response["message"] = "No businesses found";
// echo no users JSON
echo json_encode($response);
}
?>
なぜこれが失敗するのか、それを修正する方法はありますか? また、スクリプト全体が選択で static state = 'MS' で機能したことにも注意してください...ブラウザーウィンドウから次のように呼び出した場合でも:
http://address/scriptName.php?varQuery2=state+varQuery1=MS
いまだに同じ No Business Found の応答が返ってきます..
コメントによると、以下はここで使用されている表です..
CREATE TABLE `test`.`businessData` (
`idbusinessData` INT NOT NULL AUTO_INCREMENT ,
`name` CHAR(255) NULL ,
`owner` CHAR(255) NULL ,
`phone_main` CHAR(10) NULL ,
PRIMARY KEY (`idbusinessData`) );
私が正しい軌道に乗っているかどうかを確認するためのちょっとした更新:
switch ($_GET){
case "state":
$result = mysql_query("SELECT * FROM businessdata WHERE state = '" . mysql_real_escape_string($_REQUEST['varQuery1'])."'") or die(mysql_error());
case "zip";
// zipcode results
case "nothing";
// default results
}