Ver mensagens sem resposta | Ver tópicos ativos Hoje é 20 Jun 2013, 07:37



Responder Tópico  [ 3 Mensagens ] 
 Cliente Android acessando servidor com PHP e MYSQL [Fechado] 
Autor Mensagem
What is DDMS?
What is DDMS?

Data de registro: 06 Jan 2011, 08:31
Mensagens: 36
Mensagem Cliente Android acessando servidor com PHP e MYSQL [Fechado]
Pessoal,
Depois de muito tentar, consegui criar uma base para o que pode se tornar um simplérrimo WebService em PHP, acessando MySql e sendo consumido pelo Android.
Primeiro passo foi a aplicação Android:

MainActivity.java:

package WebServicePHP.java;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import java.io.InputStream;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
//import org.apache.http.HttpConnection;
//import javax.microedition.io.Connector;


public class MainActivity extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        final EditText txtConsulta = (EditText) findViewById(R.id.txtConsulta);
        final EditText txtResultado = (EditText) findViewById(R.id.txtResultado);
       
        txtConsulta.setText("SELECT login, senha, id_fotografo FROM fot_login_fotografos");
       
        final Button btnOK = (Button) findViewById(R.id.btnOK);
        btnOK.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
               
                txtResultado.setText("Inicio ...");
                               
                try {
                   
                    StringBuffer sb = null;
                    InputStream is = null;
                    URL url = new URL("http://xxxxxxxxxxxx.com.br/WebServicePHP/consulta.php?sql=" + txtConsulta.getText().toString().replace(" ", "~") + "");
                    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                    is = urlConnection.getInputStream();
                    InputStream in = new BufferedInputStream(is);
                    //readStream(in);
                   
                    BufferedReader reader = new BufferedReader(new InputStreamReader(is));
                    String line = null;
                    while ((line = reader.readLine()) != null) {
                        txtResultado.setText(line.replace("~", " "));
                    }
                   
                    urlConnection.disconnect();
                }
                catch (Exception e){
                    txtResultado.setText(e.getMessage());
                }
                               
             }
        });
       
    }
       
}



AndroidManinfest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="WebServicePHP.java"
      android:versionCode="1"
      android:versionName="1.0">

    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    <application android:label="@string/app_name" android:icon="@drawable/icon">
        <activity android:name="MainActivity"
                  android:label="@string/app_name">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>


Main.xml:

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
android:id="@+id/widget0"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
>

<Button
android:id="@+id/btnOK"
android:layout_width="49px"
android:layout_height="wrap_content"
android:text="OK"
android:layout_x="12px"
android:layout_y="179px"
>

</Button>
<EditText
android:id="@+id/txtConsulta"
android:layout_width="297px"
android:layout_height="147px"
android:textSize="18sp"
android:layout_x="10px"
android:layout_y="27px"
>

</EditText>
<EditText
android:id="@+id/txtResultado"
android:layout_width="290px"
android:layout_height="146px"
android:textSize="18sp"
android:layout_x="10px"
android:layout_y="242px"
>

</EditText>
<TextView
android:id="@+id/widget33"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Digite a Consulta"
android:layout_x="9px"
android:layout_y="6px"
>

</TextView>
<TextView
android:id="@+id/widget34"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Resultado"
android:layout_x="13px"
android:layout_y="220px"
>

</TextView>
</AbsoluteLayout>


Depois vamos ao arquivo consulta.php, que é quem é chamado pela aplicação Android, consulta o banco e escreve o retorno para o Android receber:

consulta.php:

<?php

    $sql = $_GET['sql'];
   

    //echo "->" . " " . $sql ;
   
    //$sql = "select * from fot_login_fotografos";
    $sql = str_replace("~"," ", $sql);
    $aux_1 = explode("from", $sql);
    $colunas = str_replace("select", "", $aux_1[0]);
    $colunas = str_replace(" ", "", $colunas);
    $colunas_aux = split(',', $colunas);
    $qtd_colunas = count($colunas_aux);
   
    //echo $colunas;
   

    $con = mysql_connect("IP_DO_SERVIDOR_DO_MYSQL","USUARIO","SENHA");
    if (!$con)
    {
        die('Could not connect: ' . mysql_error());
    }
    mysql_select_db("NOME_DO_BANCO", $con);
       
    $result = mysql_query($sql);
    $encontrado = "";
       
    while($row = mysql_fetch_array($result))
    {
        $aux = 0;
        while ($aux < $qtd_colunas)
        {
            echo $row[$aux] . "|";
            $aux = $aux + 1;
        }
        echo ";";
    }
    mysql_close($con);
?>


Pronto !!!!!!

Na telinha do android que é aberta, digita-se na caixa de texto de cima o select , clica-se no Botão OK e na caixa de texto de baixo aparece o resultado.

Documento em anexo para servir de entendimento.


Editado pela última vez por julioc2s em 21 Nov 2012, 11:01, num total de 1 vezes



07 Fev 2012, 15:55
Perfil
What is Android?
What is Android?

Data de registro: 08 Mar 2012, 09:58
Mensagens: 2
Mensagem Re: Cliente Android acessando servidor com PHP e MYSQL
desde já parabes pelo artigo pois está muito bem conseguido...

contudo podia ajudar-me no seguinte ponto: akilo k o php faz é imprimir os resultados... eu gostava de pesquisar uma tabelas e trazer todos os dados para a minh aplicação android.. tipo isto:

Tabela: Marcas
id | Marca | Data
1 Opel 2011
2 Citroen 2012
3 Mercedes 2009

E conseguir gravar estes vários dados em variáveis para posteriormente guardar no sqlite.. é possivel???

Obrigado pela ajuda e pelo artigo!


08 Mar 2012, 10:02
Perfil
What is Android?
What is Android?

Data de registro: 05 Nov 2012, 17:06
Mensagens: 1
Mensagem Re: Cliente Android acessando servidor com PHP e MYSQL
Um exemplo bem simples que deu para entender como funciona... /uu


05 Nov 2012, 19:36
Perfil
Mostrar mensagens anteriores:  Organizar por  
Responder Tópico   [ 3 Mensagens ] 

Quem está online

Usuários vendo este fórum: ademir.carvalhojr, adilson, Alan Unger, alexandrepom, andreluzz, Aniquiler, Antonio Carlos, arilsonm, arkanjo, Ask Jeeves, AT-AT, Augusto, austonrd, avsouza, azero, baudamix, betofigu, Bitor, bocajunior88, brenno, btminzon, C-3PO, C0GuM3I0, Carlos Almeida, Cassius, celiapinheiro, cenatech, cezaraf, christian, comolatti, cosmotheoro, czambroni, dallari, danilosouza, dbuarque, dchechetto, deivisonrpg, dkclan, dmd, dr.faro, Dudi_FC, edsonel, Eduardo, espinhara.net, fabielp, fabric01, fabricioLeonard, felipe.cintra, FelipeOliveira, fernandofsf, fmakula, frances135, Gabriel Laet, gustavo, gustavobarbosa, HAMSES, hellbest, henrikesilva1, Heritrix, ICCrawler - ICjobs, infonlinebr, ixian, jacquesbica, Jar Jar Binks, jcdeveloper, jhonguitar, jhou, Jless@, jlucasps, jrsilva, Juliobcosta, JuniorE, kennedyximenes, kpinheiro, leanderdulac, Lelinho, Lindberg, Lord, lucianoedipo, luciocamilo, Lucious, luiz.lago, madeinnordeste, marcow, marinho5, Marlosm, mauriciomag, MBetioli, mravel, n3t0, nandopierre, nina.rm, nocivus, oliverlessa, otium, Patrick, paulabr, paulo.esantos, paulo.weber, pemam.com.br, pererinha, pgsnit, Philipe Alves, pilon, pingumanbr, pxcx, rafaelvital, renatocoliveira, rguadagnini, rodrigo aguiar, rubens_olv, samuel.cavanieri, ScoobyGB, Shaman286, Shmi Skywalker, slackware, srmoreira, Thiago, thiagoalgo, thiagotomais, Thitto, tiagoxv, Transtago, ubiratan, wingdoido, YaCy, yeltsinlima, zaquiel, zorieuq e 1 visitante


Você não pode criar novos tópicos neste fórum
Você não pode responder tópicos neste fórum
Você não pode editar suas mensagens neste fórum
Você não pode excluir suas mensagens neste fórum
Você não pode enviar anexos neste fórum

Procurar por:

© 2007 - 2013 Portal Android - Comunidade de Desenvolvedores da Plataforma Android

Estamos no Linkedin    Siga-nos no twitter


Powered by phpBB - Hospedado por Bemobi