私はFIFAのフットボール選手とデータベースを持っており、自分の名前に基づいてAndroidアプリケーションから検索することができます。私は選手の評価にも基づいてそれを検索することができるようにしたいが、私はそれを行うことはできません。Android - PHPを使用して複数の基準でMySQLデータベースを検索する方法は?
これは、私のアプリケーションから2つの基準(プレーヤーの名前と評価)を送信しようとする方法です。これは動作しません。これは、プレーヤーの名前であるsearchQuery
変数を持つUri.builder()
の1つを持っていれば動作します。しかし、別のUri.builder()
に変数minRating
を追加しようとすると、データベースに接続できません。
// Setup HttpURLConnection class to send and receive data from PHP and MySQL
conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(READ_TIMEOUT);
conn.setConnectTimeout(CONNECTION_TIMEOUT);
conn.setRequestMethod("POST");
// setDoInput and setDoOutput to true as we send and recieve data
conn.setDoInput(true);
conn.setDoOutput(true);
// add parameter to our above url
Uri.Builder builder = new Uri.Builder().appendQueryParameter("searchQuery", searchQuery);
String query = builder.build().getEncodedQuery();
Uri.Builder builder2 = new Uri.Builder().appendQueryParameter("minRating", minRating);
String minRating = builder2.build().getEncodedQuery();
OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
writer.write(query);
writer.write(minRating);
writer.flush();
writer.close();
os.close();
conn.connect();
これは私が私のPHPファイルでデータを受信してデータベースを照会する方法である:
<?php
include 'config.inc.php';
if(isset($_POST['searchQuery']))
{
$search_query=$_POST['searchQuery'];
$min_rating=$_POST['minRating'];
$sql = "SELECT Name, Club_Position, Rating from spillere where Name LIKE '%$search_query%'
AND Rating > $min_rating";
$statement = $conn->prepare($sql);
$statement->bindParam(':search_query',$search_query, PDO::PARAM_STR);
$statement->execute();
if($statement->rowCount())
{
$row_all = $statement->fetchall(PDO::FETCH_ASSOC);
header('Content-type: application/json');
echo json_encode($row_all);
}
elseif(!$statement->rowCount())
{
echo "no rows";
}
}
?>
これは私のスタックトレースは次のようになります。
どうAndroidアプリケーションから2つ以上の検索基準を取得し、PHPファイルに送信してデータベースに問い合わせることはできますか?
が、あなたはすでに二つのパラメータ 'searchQuery'と' minRating'を送信します。同じことをして、さらにパラメータを送信することができます。それとも正確に何をしたいですか? – Edwin
@Edwinそれを明確にしてくれないのは残念です。私が送ることができる( 'searchQuery')両方のパラメータを送ることはできません。送信しようとすると( 'minRating')動作しません。だから私が( 'Uri.builder')を使う方法に何か間違いがなければなりません。 – Sumsar9000