Android Eclipse如何从php MySql数据库中显示特定数据到列表视图

Hello and good day all,

I have try android eclipse project connect to phpmysql with xampp server. For now i success to get and display all data from mysql database to listview.

But how to only get specific data only. Example :

Name : Class: CodeSubject: SubjectName: JOHN 2 TBE124

JOHN 2 TKE123

JOHN 2 TZE125

JOHN 2 TDE194

ADAM 2 TAE154

ADAM 2 TQE114

GORGE 2 TGE164

GORGE 2 TCE123

GORGE 2 TBE126

What i want is ListView will show All JOHN data/row/column if spinner select JOHN. If select ADAM then ListView will show All ADAM data/row/column. For my code now, it will show all the data from database. If any have tutorial related please share with me.

I used androidhive tutorial. http://www.androidhive.info/2012/05/how-to-connect-android-with-php-mysql/


<?php

 /*
 * Following code will list all the products
 */

// array for JSON response
$response = array();


// include db connect class
require_once __DIR__ . '/db_connect.php';

// connecting to db
$db = new DB_CONNECT();

//here the search value is what you send from the app
if(isset($_GET["matricID"])){

$string_input = $_GET['matricID'];

$result = mysql_query("SELECT * FROM tbl_semester WHERE matricID LIKE '%$matricID%'") or die(mysql_error());

// check for empty result
if (mysql_num_rows($result) > 0) {

// looping through all results
// products node
$response["tbl_semester"] = array();
while ($row = mysql_fetch_array($result)) {
// temp user array
$semester = array();
$semester["pid"] = $row["pid"];
$semester["matricID"] = $row["matricID"];
$semester["code"] = $row["code"];
$semester["course"] = $row["course"];
$semester["point"] = $row["point"];
$semester["crdhour"] = $row["crdhour"];
$semester["grdpoint"] = $row["grdpoint"];
$semester["reattempt"] = $row["reattempt"];
$semester["grd"] = $row["grd"];

// push single product into final response array
array_push($response["tbl_semester"], $semester);
}

// success
$response["success"] = 1;

// echoing JSON response
echo json_encode($response);
} else {

// no products found
$response["success"] = 0;
$response["message"] = "No products found";

// echo no users JSON
echo json_encode($response);
}
}
?>

dongyu4455
dongyu4455 你需要同样的网络服务
大约 6 年之前 回复

2个回答



您需要编写一个web服务,它将从您的mysql数据库中获取数据并将其发送到您的Android应用程序。</ p> \ n

在您的服务器上编写一个php脚本,获取数据,在JSON对象中对其进行编码并将其发送到您的应用程序。</ p>

您引用的教程很好地描述了 这样做的方式。 您可以按照相同的步骤进行操作。</ p>

要处理问题的第二部分,请通过POST或GET将微调器上选择的项目发送到服务器。 创建查询以使用发送到服务器的数据检索行。 将检索到的数据发送回应用程序,方法与之前完成的方式类似。 然后填充ListView中收到的数据。</ p>

同样的教程也会显示此演示。</ p>

希望它有所帮助。</ p>

你在服务器上的示例php可能是这样的</ p>

  //这里搜索值是你从app发送的内容
if(isset($ _ POST) [“searchvalue”])){

$ string_input = $ _POST ['searchvalue'];

$ result = mysql_query(“SELECT * FROM TABLENAME WHERE NAME_COLUMN LIKE'%$ string_input%'”)或死亡 (mysql_error());
</ code> </ pre>
</ div>

展开原文

原文

You need to write a webservice which will get the data from your mysql database and send it to your android app.

Write a php script on your server, get the data, encode it inside a JSON object and send it to your app.

The tutorial you have quoted well describes the way to do it. You can follow the same.

To handle the second part of your question, send the item selected on the spinner to the server via a POST or a GET. Create a query to retrieve the rows using the data sent to the server. Send the retrieved data back to the app the similar way you have done it earlier. Then populate the data received in your ListView.

The same tutorial shows this demonstration as well.

Hope it helps.

You sample php at the server could be something like this

//here the search value is what you send from the app
if(isset($_POST["searchvalue"])){

    $string_input = $_POST['searchvalue'];

    $result = mysql_query("SELECT * FROM TABLENAME WHERE NAME_COLUMN LIKE '%$string_input%'") or die(mysql_error());

douzi0609
douzi0609 如果必须检索多个matricID的行,请编辑查询以从数据库中获取所需的值。 谢谢!
大约 6 年之前 回复
drmg17928
drmg17928 谢谢你的codePG,用string_input替换后它工作。 发送?matricID = 123m或124m并成功显示所有行内容。 可以从数据库中显示多个相同的matricID。 现在我有两行具有相同的matricID = 123m,但它只显示第一行。 mha.my/TestUUMPortal/android_connect/...
大约 6 年之前 回复
duan2891
duan2891 你的错误在这一行:$ result = mysql_query(“SELECT * FROM tbl_semester WHERE matricID LIKE'%$ matricID%'”这里将%$ matricID%替换为%$ string_input%
大约 6 年之前 回复
donglian7879
donglian7879 mha.my/TestUUMPortal/android_connect / ...当我输入服务器url而没有赋值?matricID时它也获取所有数据。 我只是更新上面的PHP代码。
大约 6 年之前 回复
doufan3958
doufan3958 我编辑旧代码,添加您的示例,并测试我使用$ _GET。 它搜索,但仍然显示所有数据..
大约 6 年之前 回复
dqz7636
dqz7636 是的,您必须执行相同的过程,但稍后它将获取您的新值。 您仍然可以使用相同的ListView来填充数据
大约 6 年之前 回复
douya6229
douya6229 是的我使用了tutoril中提供的php。 这意味着我需要写下新的PHP代码来从android搜索NAME POST / GET。 只收集NAME数据并将其发送回android。
大约 6 年之前 回复



这可以通过两种方式完成:</ p>


  1. By 在每个微调器选择上查询mysql数据库。</ p>


    • 在微调器的每个选择上将请求发送到数据库。</ li>
    • 服务器将返回一个 JSON对象,通过这种方式解析json对象并填充listview </ li>
    • 应用程序加载将更少,服务器负载将会更多。</ li>
      </ ul> </ li>
    • 通过仅处理java文件中的所有内容</ p>


      • 创建与key =“name”对应的JSON对象:value = { 与名称相关的所有字段} </ li>
      • 根据每个微调器选择的名称创建用于查看此JSON对象的逻辑,并使用与键名对应的值字段填充列表视图< / li>
      • 但这将使用您可能不需要的数据加载应用程序,因为所有名称都将在JSON对象中加载其属性</ li>
        </ ul> </ li>
        </ ol>

        我建议你实施First me thod。</ p>
        </ div>

展开原文

原文

This can be done in two ways:

  1. By Querying mysql database on each spinner selection.

    • on every selection of the spinner send the request to the database.
    • server will return a JSON object, parse that json object and populate the listview
    • by this way app load will be less bu the server load will be a bit more.
  2. By handling all stuff in java file only

    • make a JSON object corresponding to the key="name": value={all fields related to the name}
    • make a logic for looking into this JSON object on the basis of the name for each spinner selection and populate the list view with the value fields corresponding to the key name
    • but this will load the app with the data which you may not be needing, because all the names will be loaded with their properties in the JSON object

I suggest you to implement the First method.

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐