2014-05-14 2 views
1

как отображать данные, хранящиеся в mysql, способом foreach? Я хочу отображать данные из mysql darabase, используя foreach. Я пробовал как файл php ниже, но не так необходимо, как мне нужно.отображает массив данных с foreach на mysql

tbl1

+-----+----------+--------+ 
|*id | name | type | 
+=====+==========+========+ 
| 1 | car | a | 
+-----+----------+--------+ 
| 2 | motorcly | a | 
+-----+----------+--------+ 
| 3 | Bus | 1 | 
+-----+----------+--------+ 
| 4 | others | 1 | 
+-----+----------+--------+ 

file.php

<?php 
include("connect.php"); 
$q = mysql_query("SELECT * FROM tbl1"); 
$trans = '['; 
while($r=mysql_fetch_array($q)) 
{ 
    if(strlen($v)<15) 
    { 
     $trans .= '{ 
      "id" :"'.($r['id']).'", 
      "name" : "'.$r['name'].'", 
      "type_count" : "'.$r['type'].'" 
      }'; 
    } 
    else 
    { 
     $trans .= '{ 
      "id" :"'.($r['id']).'", 
      "name" : "'.$r['name'].'", 
      "type_count" : "'.$r['type'].'" 
      }'; 

    } 
} 
$trans .= ']'; 
    echo json_encode($trans); 
?> 

Этот пример включает в себя Еогеасп, но не использует MySQL

tes.php

<?php 

include_once './data.php'; //"with data.php????" :(not use mysql 
$trans = array(); 

foreach ($tran_z as $trans) { 
    $tmp = array(); 
    $tmp["id"] = $album["id"]; 
    $tmp["name"] = $album["name"]; 
    $tmp["type_count"] = count($trans["type"]); 

    array_push($trans, $tmp); 
} 

echo json_encode($trans); 
?> 

как отображать данные, хранящиеся в mysql, способом foreach?

для этого

package com.trans.baru; 

import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 

import org.apache.http.NameValuePair; 
import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import android.app.ListActivity; 
import android.app.ProgressDialog; 
import android.content.Intent; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.ListAdapter; 
import android.widget.ListView; 
import android.widget.SimpleAdapter; 
import android.widget.TextView; 

public class MenuActivity extends ListActivity { 
    ConnectionDetector cd; 
    AlertDialogManager alert = new AlertDialogManager();  
    private ProgressDialog pDialog; 
    JSONParser jsonParser = new JSONParser(); 
    ArrayList<HashMap<String, String>> submenu; 
    JSONArray menu = null; 
    private static final String URL_ALBUMS = "http://10.0.2.2/android/tes.php"; 

    // ALL JSON node names 
    private static final String TAG_ID = "id"; 
    private static final String TAG_NAME = "name"; 
    private static final String TAG_TYPE_COUNT = "type_count"; 
+0

Почему бы не использовать '' внутри 'while' и отобразить его там сами? Почему 'json_encode' это? Или вы хотите выход в формате json? – asprin

+0

, но для этого частного статического финала Строка URL_ALBUMS = "10.0.2.2/androidr/tes.php" ;; // ВСЕ имена узлов JSON private static final Строка TAG_ID = "id"; private static final String TAG_NAME = "name"; private static final String TAG_SONGS_COUNT = "type_count"; –

ответ

1

Просто заполнить массив первым?

include("connect.php"); 
$q = mysql_query("SELECT * FROM tbl1"); 
$rs = array(); 
while($r=mysql_fetch_array($q)) { 
    $rs[] = $r; 
} 
foreach ($rs as $r) { 
    //do stuff 
} 

Кстати это выглядит, как вы склеивание строки JSON самостоятельно, а затем json_encode «ИНГ это потом ... Просто сделайте массив, а затем пусть json_encode сделать кодировку. То есть. json_encode($rs);

+0

, но для этого ** private static final String URL_ALBUMS = "http://10.0.2.2/androidr/tes.php"; \t // ВСЕ имена узлов JSON \t private static final String TAG_ID = "id"; \t private static final String TAG_NAME = "name"; \t private static final String TAG_SONGS_COUNT = "type_count"; ** –

+0

не succsess :( –

Смежные вопросы