'How can I get data from PHP to Android TextView?

How can I get data from PHP to Android?

can you help me?, how can I display result of PHP to android textview this is my PHP code I should use JSON on this...

<? php
mysql_connect("localhost","root","");

mysql_select_db("mydatabase");

$query = "SELECT SUM(OrderPrice) as total FROM tbl_user";
$result = mysql_query($query);


while($row = mysql_fetch_assoc($result))
{
$new_arr[] = $row['total'];
}
echo json_encode($new_arr);

?>


Solution 1:[1]

Hi you can use these links :

parse JSON in android, Android JSON Parsing Tutorial

Solution 2:[2]

I'm afraid I can't post a comment, but this tutorial will definitely help you. In short, you use HttpUrlConnection to read the page of JSON and then parse it as you wish using org.json.JSONObject.

http://ihofmann.wordpress.com/2012/08/09/restful-web-services-with-json-in-android/

Solution 3:[3]

The question is about whether you will read a php directly on your device or request it from your webserver. You could do the first one but you must install a webserver maybe apache on your device, of cos "localhost and 127.0.0.1" might work without a webserver,you could use following class or library to get data from it, it could be dam! The second one is easy, put your php on your server and the client app call it by http/https etc:

  1. Simple connect:

    public static class Connector extends AsyncTask<String, Object, Object> {
    private static final int   DEFAULT_CNN_TIME_OUT = 1000 * 20;
    private static String      USER_AGENT;
    private static final int[] LOCK                 = new int[1];
    private String             mUrl;
    private byte[]             mBody;
    
    public Connector( Context _cxt ) {
        super();
        if( TextUtils.isEmpty( USER_AGENT ) ) {
            // Without this, the default provided by API will be like "Dalvik/1.6.0 (Linux; U; Android 4.0.4; BASE_Lutea_3 Build/IMM76D)" .
            USER_AGENT = new WebView( _cxt ).getSettings().getUserAgentString();
        }
    }
    
    /*
     * Convenient function to execute the connecting task.
     */
    public void submit( String _url ) {
        this.execute( _url );
    }
    
    @Override
    protected Object doInBackground( String... _params ) {
        mUrl = _params[0];
        Object ret = null;
        HttpURLConnection conn = null;
        try {
            synchronized( LOCK ) {
                InputStream in = null;
                conn = connect( mUrl );
                // if we don't do conn.setRequestProperty( "Accept-Encoding", "gzip" ), the wrapper GZIPInputStream can be removed.
                onConnectorInputStream( in = new GZIPInputStream( conn.getInputStream() ) );
                in.close();
                in = null;
            }
        }
        catch( Exception _e ) {
            ret = _e;
        }
        finally {
            if( conn != null ) {
                conn.disconnect();
                conn = null;
            }
        }
        return ret;
    }
    
    @Override
    protected void onPostExecute( Object _result ) {
        if( _result instanceof SocketTimeoutException ) {
            onConnectorConnectTimout();
        } else if( _result instanceof ConnectorPostConnectException ) {
            onConnectorError( ((ConnectorPostConnectException) _result).getStatus() );
        } else if( _result instanceof Exception ) {
            onConnectorInvalidConnect( (Exception) _result );
        } else if( _result == null ) {
            onConnectorFinished();
        }
        handleEstablishedConnection();
    }
    
    /*
     * Internal help and test function.
     */
    private static void handleEstablishedConnection() {
        try {
            Log.v( TAG, "Connection is established." );
            CookieStore cs = CookieManager.getInstance().getCookieStore();
            if( cs != null ) {
                Log.v( TAG, "------------cookies------------" );
                List<Cookie> list = cs.getCookies();
                if( list != null && list.size() > 0 ) {
                    StringBuilder cookieBuilder = new StringBuilder();
                    for( Cookie c : list ) {
                        cookieBuilder
                                .append( c.getName().trim() )
                                .append( "=>" )
                                .append( c.getValue().trim() )
                                .append( "=>" )
                                .append( c.getDomain() );
                        Log.v( TAG, cookieBuilder.toString() );
                        cookieBuilder.delete( 0, cookieBuilder.length() - 1 );
                    }
                    cookieBuilder = null;
                } else {
                    Log.v( TAG, "Empty cookies." );
                }
                cs = null;
                list = null;
            }
        }
        catch( Exception _e ) {
            Log.e( TAG, "Error in handleEstablishedConnection: " + _e.getMessage() );
        }
        finally {
        }
    }
    
    private HttpURLConnection connect( String _urlStr ) throws Exception {
        URL url = null;
        HttpURLConnection conn = null;
        try {
            try {
                url = new URL( _urlStr );
            }
            catch( MalformedURLException e ) {
                throw new IllegalArgumentException( "Invalid url: " + _urlStr );
            }
            conn = preConnect( url );
            doConnect( conn );
            conn = postConnect( conn );
        }
        catch( Exception _e ) {
            throw _e;
        }
        finally {
            url = null;
        }
        return conn;
    }
    
    private HttpURLConnection preConnect( URL url ) throws Exception {
        HttpURLConnection conn;
        conn = (HttpURLConnection) url.openConnection();
        conn.setUseCaches( false );
        // http://www.aswinanand.com/2009/01/httpurlconnectionsetfollowredirects-bug/comment-page-1/#comment-13330
        // see the url to learn more about the problem of redirect
        conn.setInstanceFollowRedirects( false );
        conn.setDoOutput( true );// allows body
        mBody = getBody();
        if( hasBody() ) {
            conn.setFixedLengthStreamingMode( mBody.length );
        }
        conn.setRequestMethod( "POST" );
        conn.setRequestProperty( "Connection", "Keep-Alive" );
        conn.setRequestProperty( "Content-Type", "application/x-www-form-urlencoded;charset=UTF-8" );
        conn.setRequestProperty( "User-Agent", USER_AGENT );
        conn.setRequestProperty( "Accept-Encoding", "gzip" );// force server to send in Content-Encoding: gzip .
        String cookies = onCookie();
        if( !TextUtils.isEmpty( cookies ) ) {
            conn.setRequestProperty( "Cookie", onCookie() );
            cookies = null;
        }
        conn.setConnectTimeout( onSetConnectTimeout() );
        return conn;
    }
    
    /*
     * Convenient function to check the exiting of body.
     */
    private boolean hasBody() {
        return mBody != null && mBody.length > 0;
    }
    
    private void doConnect( HttpURLConnection conn ) throws Exception {
        OutputStream out; // the outgoing stream
        out = conn.getOutputStream();
        if( hasBody() ) {
            out.write( mBody );
        }
        out.close();
        out = null;
    }
    
    private HttpURLConnection postConnect( HttpURLConnection conn ) throws Exception {
        int status = conn.getResponseCode();
        if( status != HttpURLConnection.HTTP_OK ) {
            throw new ConnectorPostConnectException( status );
        } else {
            CookieManager.getInstance().put( conn.getURL().toURI(), conn.getHeaderFields() );
            return conn;
        }
    }
    
    private byte[] getBody() {
        byte[] body = null;
        String bodyString = onSetBody();
        if( !TextUtils.isEmpty( bodyString ) ) {
            body = bodyString.getBytes();
        }
        return body;
    }
    
    // ------------------------------------------------
    // Overrides methods here
    // ------------------------------------------------
    
    protected int onSetConnectTimeout() {
        return DEFAULT_CNN_TIME_OUT;
    }
    
    protected String onCookie() {
        return null;
    }
    
    protected String onSetBody() {
        return null;
    }
    
    protected void onConnectorConnectTimout() {
        Log.e( TAG, "Handling connector timeout gracefully." );
    }
    
    protected void onConnectorError( int _status ) {
        Log.e( TAG, "Handling connector error(responsed) gracefully: " + _status );
    }
    
    protected void onConnectorInvalidConnect( Exception _e ) {
        Log.e( TAG, "Handling connector invalid connect(crash) gracefully: " + _e.toString() );
    }
    
    /*
     * Read data here. The function runs in thread. To hook on UI thread use onConnectorFinished()
     */
    protected void onConnectorInputStream( InputStream _in ) {
    }
    
    /*
     * Last handler for a success connection
     */
    protected void onConnectorFinished() {
    }
    }
    
  2. Use Volley to get response: https://github.com/ogrebgr/android_volley_examples/blob/master/src/com/github/volley_examples/Act_SimpleRequest.java

  3. Use jsoup to get "raw html": http://jsoup.org/

Solution 4:[4]

Say this is ur php file db.php with database 'deal' and table 'city' having fields CITY_ID and CITY_NAME

<?php

$con = mysql_connect('localhost', 'root', '');

if (!$con)
{
die("could not connect: " + mysql_error());
}
mysql_select_db("deal", $con);

$result=mysql_query("SELECT * FROM city ", $con);
while ($row = mysql_fetch_assoc($result))
{
$output[]=$row;
}
print(json_encode($output));
mysql_close($con);   
?>

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Community
Solution 2 Rob
Solution 3 TeeTracker
Solution 4