-1

検索に基づいて mysql テーブルからデータを取得する検索アクティビティを実装しようとしています。

EditText に入力された文字列を使用して、隣接するセルを取得する PHP スクリプトを作成したいと考えています。

たとえば、mysql テーブルに Firstname と Surname の 2 つの列があるとします。Firstname を検索して姓を取得できるようにしたいと思います (Firstname を EditText に入力します。これにはSELECT Surname FROM Names WHERE ...クエリが必要になる場合がありますが、Java クラスから変数を指定するにはどうすればよいですか?

これまでの PHP スクリプト:

<?php
mysql_connect("localhost","root","");
mysql_select_db("androidapp");
$sql=mysql_query("SELECT surname WHERE $get'fname'");
while($row=mysql_fetch_assoc($sql)) $output[]=$row;
print(json_encode($output));
mysql_close();
?>

また、これを行うには HttpGet メソッドまたは HttPost メソッドが適切ですか。結果は TextView に姓を表示する必要があります。

4

3 に答える 3

0

http postまたはhttp getを介して、phpからjava(android)にデータを送受信したいと思います。私が間違っている場合は修正してください。

基本的に、php に返してもらいたいのは、テーブルの最初の名前に一致する行です。

mysql_connect("localhost","root","");

mysql_select_db("androidapp");

$fname = mysql_real_escape_string($_POST['fname']);

$result = mysql_query("SELECT surname FROM names WHERE fname = '$fname'");

//if you want only one record then
$row = mysql_fetch_array($result);

echo json_encode($row);

mysql_close();

mysql_real_escape_string()php の関数を使用して SQL インジェクションを行う場合は、常にデータをエスケープすることを忘れないでください。また、私はHTTP POSTを好むでしょう。

Android アプリケーションから、PHP スクリプトがあるサーバーに http リクエストを送信する必要があります。

これがあなたに役立つことを願っています

于 2012-04-11T12:25:45.233 に答える
0

クエリで何をしているのかよくわかりませんが、使用します

$fname = addslashes($_GET['fname']);
$sql = mysql_query("SELECT surname FROM Names WHERE fname='$fname'");
...

明らかfname=whateverに、クエリを渡します。

GET は絶対に問題ありません。HTTP は、サーバーから情報を返し、他の副作用 (データベースの変更など) がないものとして GET 要求を指定します。

于 2012-04-11T12:26:58.290 に答える
-2

PHP でコーディングされた一種の Web サービスと通信する Android アプリケーション (Java で記述) があると思います。

したがって、PHP アプリケーションは他の Web サービスと同じように動作する必要があります。

PHP では、$_GET、$_POST、または $_REQUEST グローバル変数を使用して、スクリプトに指定されたパラメーターを取得できます。

  • $_GET には、GET メソッドによって送信されるパラメーターのみが含まれます (つまり、URL に直接含まれます)。

  • $_POST には、POST メソッド (http クエリでネストされている) によって送信されるパラメーターのみが含まれます。

  • $_REQUEST は $_GET + $_POST のコンパイルです。

Web アプリケーションの場合、多くの場合 $_REQUEST が最適なソリューションであるため、呼び出し元が使用するすべてのメソッド (POST/GET) を許可します。1 つだけ修正する場合は、$_POST または $_GET を選択します。

したがって、

$sql = mysql_query("SELECT surname WHERE firstname='".mysql_real_escape_string($_REQUEST['fname'])."'");

mysql_real_escape_string()SQL インジェクションを防ぐために、パラメーターをエスケープすることを忘れないでください。

于 2012-04-11T12:36:05.693 に答える