在php中使用$u POST将数据从数据库解析到Android
我是Android编程新手,我正在制作一个应用程序,它有一个服务器端数据库,其中包含药物名称列表,每个药物都有其特定的参考ID。现在我想要的是,当用户通过单击按钮搜索药物名称时,它应该运行数据库搜索,并根据药物是否存在于数据库中以及输入的特定参考ID返回值。我该怎么做才能那样做。。我被引用id问题困住了,它不是获取引用id,只是查询药物名称??如果出了问题,请提出建议在php中使用$u POST将数据从数据库解析到Android,php,android,json,database-connection,httpurlconnection,Php,Android,Json,Database Connection,Httpurlconnection,我是Android编程新手,我正在制作一个应用程序,它有一个服务器端数据库,其中包含药物名称列表,每个药物都有其特定的参考ID。现在我想要的是,当用户通过单击按钮搜索药物名称时,它应该运行数据库搜索,并根据药物是否存在于数据库中以及输入的特定参考ID返回值。我该怎么做才能那样做。。我被引用id问题困住了,它不是获取引用id,只是查询药物名称??如果出了问题,请提出建议 //This is my SecondActivity.java public class SecondActivit
//This is my SecondActivity.java
public class SecondActivity extends AppCompatActivity implements View.OnClickListener {
final String LOG = "SecondActivity";
Button btnCheck;
EditText etDrugname;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
etDrugname = (EditText) findViewById(R.id.etDrugname);
btnCheck = (Button) findViewById(R.id.btnCheck);
btnCheck.setOnClickListener(this);
}
@Override
public void onClick(View v) {
HashMap postData = new HashMap();
String Drugname = etDrugname.getText().toString();
postData.put("txtDrugname", Drugname);
PostResponseAsyncTask task1 = new PostResponseAsyncTask(SecondActivity.this, postData,
new AsyncResponse() {
@Override
public void processFinish(String s) {
Log.d(LOG, s);
if (s.contains("Drug found")) {
Intent intent = new Intent(SecondActivity.this, DisplayActivity.class);
intent.putExtra("Drugname", etDrugname.getText().toString());
startActivity(intent);
} else {
Intent intent = new Intent(SecondActivity.this, Display2Activity.class);
intent.putExtra("Drugname", etDrugname.getText().toString());
startActivity(intent);
}
}
});
task1.execute("http://www.e-bioinformatics.net/db/utipedia/test/login2.php");
}
}
//这是我的DisplayActivity.java,我想在这里显示我的结果
`
ListView-lv;
//列表视图PMID1;
阵列适配器;
字符串地址=”http://www.e-bioinformatics.net/db/utipedia/test/login2.php";
InputStream=null;
字符串行=null;
字符串结果=null;
字符串[]数据;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_显示);
TextView结果=(TextView)findViewById(R.id.result);
result.setText(getIntent().getExtras().getString(“药名”);
lv=(ListView)findViewById(PMID);
StrictMode.setThreadPolicy((新的StrictMode.ThreadPolicy.Builder().permitNetwork().build());
getData();
adapter=new ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,数据);
低压设置适配器(适配器);
私有void getData(){
试一试{
URL=新的URL(地址);
HttpURLConnection connection=(HttpURLConnection)url.openConnection();
connection.setRequestMethod(“GET”);
is=新的BufferedInputStream(connection.getInputStream());
}捕获(例外e){
e、 printStackTrace();
}
试一试{
BufferedReader br=新的BufferedReader(新的InputStreamReader(is));
StringBuilder sb=新的StringBuilder();
而((line=br.readLine())!=null){
sb.追加(第+行“\n”);
}
is.close();
结果=sb.toString();
}捕获(例外e){
e、 printStackTrace();
}
试一试{
JSONArray ja=新JSONArray(结果);
JSONObject jo;
数据=新字符串[ja.length()];
对于(int i=0;iListView lv;
//ListView PMID1;
ArrayAdapter<String> adapter;
String address = "http://www.e-bioinformatics.net/db/utipedia/test/login2.php";
InputStream is = null;
String line = null;
String result = null;
String[] data;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display);
TextView result = (TextView) findViewById(R.id.result);
result.setText(getIntent().getExtras().getString("Drugname"));
lv = (ListView) findViewById(PMID);
StrictMode.setThreadPolicy((new StrictMode.ThreadPolicy.Builder().permitNetwork().build()));
getData();
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data);
lv.setAdapter(adapter);
private void getData() {
try {
URL url = new URL(address);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
is = new BufferedInputStream(connection.getInputStream());
} catch (Exception e) {
e.printStackTrace();
}
try {
BufferedReader br = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result = sb.toString();
} catch (Exception e) {
e.printStackTrace();
}
try {
JSONArray ja = new JSONArray(result);
JSONObject jo;
data = new String[ja.length()];
for (int i = 0; i < ja.length(); i++) {
jo = ja.getJSONObject(i);
data[i] = jo.getString("Referenceid");
}
} catch (JSONException e) {
e.printStackTrace();
}
}
//this is my php script
<?php
$input= $_POST['txtDrugname'];
$input = strtolower($input);
if($input == ''){
echo "OOPS! It seems the input section is left blank. <br>please submit the <b>drug name.</b>";
}else{
/* $ucaredb = mysql_connect("localhost", "ebioinfo_ucare", "admin_ucare")
or die(mysql_error());*/
$utidb = mysql_connect("localhost", "ebioinfo_uti0912", "uti@097")
or die(mysql_error());
mysql_select_db("ebioinfo_utipedia",$utidb);
/*
$sql_antibiotics = "SELECT * FROM antibiotics";
$result_antibiotics = mysql_query($sql_antibiotics, $ucaredb);
$sql_resistancegene = "SELECT * FROM resistancegene";
$result_resistancegene = mysql_query($sql_resistancegene, $ucaredb);*/
$sql_drug = "SELECT * FROM UTIPEDIA";
$result_drug = mysql_query($sql_drug, $utidb);
$i=0;
while ($row_drug = mysql_fetch_array($result_drug))
{
$resistance_drug = $row_drug['Drugname'];
$resistance_drug = strtolower($resistance_drug);
$resistance_ref = $row_drug['Referenceid'];
$part = explode(',', $resistance_ref);
if($input == $resistance_drug)
{
$i=1;
echo "Drug found";
echo "<h2><b>$input</b> is resistant against <i>Escherichia coli.</i></h2> <br>For further details see the following bibliography: ";
//echo "$resistance_ref";
print(json_encode($resistance_ref));
}
}if($i !=1){echo "$input is not found in the database!";}
}