2016-03-22 2 views
0

Ich habe eine Tabelle in mysqldatabase benannte Person mit diesem Code ich nur das Bild von MySQL-Datenbank retreive kann phpScript mit:get paar Daten aus MySQL zu android apps

@Override 
    protected Bitmap doInBackground(String... params) { 
     String add1 = "http://192.168.1.11/save/load_image_from_db.php?id=1"; 
     URL url; 
     Bitmap image = null; 
      try { 
       url = new URL(add1); 
       HttpURLConnection connection =(HttpURLConnection) url.openConnection(); 
       image = BitmapFactory.decodeStream(connection.getInputStream()); 
      } catch (MalformedURLException e) { e.printStackTrace(); 
      } catch (IOException e) { e.printStackTrace();} 
     return image; 
    } 
} 

und das ist phpscript load_image_from_db. php

<?php 
 
$con = mysqli_connect("localhost","root","","othmane") or die(mysqli_error($con)); 
 
    
 
if($_SERVER['REQUEST_METHOD']=='GET'){ 
 
$id = $_GET['id']; 
 
$sql = "SELECT image,image_type FROM images where id = $id"; 
 

 
$r = mysqli_query($con,$sql) or die(mysqli_error($con));; 
 
    
 
$result=mysqli_fetch_array($r); 
 
header('Content-Type:image/jpeg'); 
 

 
if ($result['image_type'] == 'php') { 
 
      echo ($result['image']); 
 
\t \t \t } else if ($result['image_type'] == 'android') { 
 
      echo base64_decode($result['image']); 
 
     } 
 
mysqli_close($con); 
 
//stripslashes ($result['image']); 
 
//echo '<img src="data:image/jpeg;base64,'.base64_encode($result['image']).'"/>'; 
 
//echo base64_encode($result['image']); 
 
} 
 
?>

wenn ich dieses php-script so ändere, dass es das bild und die id zeigt, wie kann ich diese daten an android apps bekommen? Gibt es sowas wie ResultSet?

+0

Sie müssen die Daten analysieren, die von einer Postanforderung zurückkommen, also müssen Sie XML oder HTML analysieren. Vielleicht möchten Sie einen Service in Erwägung ziehen. –

Antwort

0

Persönlich verwende ich nur eine POST-Anfrage, die die Daten von PHP erfasst. Ruft den Job ab.

In Android ist es ein bisschen beteiligt, aber ich erstelle eine PostHandler-Klasse (es muss AsyncTask erweitern, um Web-Arbeit zu tun). Dann haben Sie die DoInBackground und CallServiceHttpPost-Methoden (die ich glaube, sind Teil einer Schnittstelle). Ich rufe die Service-Post-Methode von do im Hintergrund. Dann verwende ich HttpClient und HttpPost, um die Arbeit zu erledigen.

Schließlich haben Sie eine onPostExecute-Methode.

Sie erstellen diese Klasse, erstellen dann eine Instanz davon in Ihrem Hauptprogramm und führen .execute() aus, um sie auszuführen. Sie können Params über eine benutzerdefinierte Methode übergeben.

+0

Wie können Sie mir ein Tutorial zeigen? –

+0

@ OtmàaneFikri Ich aktualisierte die Antwort. – robestrong