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

时间:2014-08-27 04:40:38

标签: php android mysql json eclipse

大家好,祝你好运,

我已经尝试使用xampp服务器将android eclipse项目连接到phpmysql。现在我成功获取并显示从mysql数据库到listview的所有数据。

但是如何只获取特定数据。示例:

名称:类:CodeSubject:SubjectName: 约翰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

我想要的是如果微调器选择JOHN,ListView将显示所有JOHN数据/行/列。如果选择ADAM,则ListView将显示所有ADAM数据/行/列。对于我现在的代码,它将显示数据库中的所有数据。如果有相关教程请与我分享。

我使用了androidhive教程。 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); } } ?>

2 个答案:

答案 0 :(得分:1)

这可以通过两种方式完成:

  1. 通过在每个微调器选择上查询mysql数据库。

    • 对每个微调器的选择都将请求发送到数据库。
    • 服务器将返回一个JSON对象,解析该json对象并填充listview
    • 通过这种方式,app load将会更少,服务器负载会更多。
  2. 只处理java文件中的所有内容

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

答案 1 :(得分:0)

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

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

你引用的教程描述了这样做的方法。你也可以这样做。

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

同样的教程也展示了这个演示。

希望它有所帮助。

您在服务器上示例php可能是这样的

//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());