2016-09-17 1 views
0

die Abfrage aus der Anwendung ausführen wird nicht aktualisiert, aber ich kann es tun manuellUpdate von Anwendung doesnt führen Sie die Abfrage aber die Ausführung von url wird die Abfrage

dies die URL ist, beachten Sie, wenn Sie es exucte, die Abfrage

http://justedhak.com/old-files/singleactivity.php?id=1&likes=14

ist dies die pHP ausgeführt werden, ich weiß, php verbessert werden muss

$id= intval($_GET['id']); 
$likes= intval($_GET['likes']); 

$con = mysqli_connect($host,$uname,$pwd,$db) or die(mysqli_error()); 
echo $id; 

    $sql1="UPDATE OBJECTS SET LIKES=$likes WHERE ID=$id"; 
    $result = mysqli_query($con,$sql1); 

dies ist der Code

class SendPostReqAsyncTask extends AsyncTask<String, Void, String> { 
     @Override 
     protected void onPreExecute() 
     { 
      Log.e("GetText","called"); 

     } 
     @Override 
     protected String doInBackground(String... params) { 

      String json = ""; 

      try{ 
       RequestBody formBody = new FormEncodingBuilder() 
         .add("id", "1") 
         .add("likes", "10") 
         .build(); 
       Request request = new Request.Builder() 
         .url("http://justedhak.com/old-files/singleactivity.php") 
         .post(formBody) 
         .build(); 

       Response response = client.newCall(request).execute(); 
       if (!response.isSuccessful()) throw new IOException("Unexpected code " + response); 
       //insert username, password and login true after successful login. 


       //redirect to main activity 


      } catch (IOException e){ 
       Log.e("MYAPP", "unexpected JSON exception", e); 
      } 

      return "success"; 
     } 

Ich bin nicht immer Fehler, und die asyctask sieht gut aus

+0

Ich konnte nicht verstehen, was dein Problem ist. Kannst du ein bisschen mehr erzählen? – jonathanrz

+0

@jonathanrz Ich führe die asynctask, um eine Spalte zu aktualisieren, aber nicht ausgeführt wird, aus der App, wenn ich diese Aktivität öffnen und die asytask ausführen, gehe ich in die Datenbank und ich sehe den Wert immer noch gleich, wenn ich die Abfrage ausführen manuell funktioniert es – Moudiz

Antwort

1

Ihre API-Unterstützung nur GET Methode. Sie müssen dafür kein RequestBody erstellen.

die Sie interessieren,

@Override 
protected String doInBackground(String... params) { 
    try { 
     String id = "1"; 
     String likes = "14"; 
     String url = "http://justedhak.com/old-files/singleactivity.php?id=" + id + "&likes=" + likes; 
     Request request = new Request.Builder() 
       .url(url) 
       .build(); 

     Response response = client.newCall(request).execute(); 

     if (!response.isSuccessful()){ 
      throw new IOException("Unexpected code " + response); 
     } 

     Log.e("MYAPP", response.body().string()); 

    } catch (IOException e){ 
     Log.e("MYAPP", "unexpected JSON exception", e); 
    } 

    return "success"; 
} 

diesen Code Versuchen in PHP,

<?php 
$id = intval($_GET['id']); 
$likes = intval($_GET['likes']); 

// Create connection 
$conn = new mysqli($host, $uname, $pwd, $db); 

// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "UPDATE OBJECTS SET LIKES=$likes WHERE ID=$id"; 

if ($conn->query($sql) === TRUE) { 
    echo "Record updated successfully"; 
} else { 
    echo "Error updating record: " . $conn->error; 
} 

$conn->close(); 
?> 
+0

Funktioniert immer noch das Update funktioniert nicht – Moudiz

+0

die seltsame Sache ist in der URL ich übergebe den Parameter als Integer, in der Anwendung ich sende sie als String, aber in php bin ich konvertieren sie. möglich das ist das Prblm? – Moudiz

+0

Ich habe etwas bemerkt, wo ich die Where-Bedingung aus der Abfrage entfernt hat, hat es funktioniert. Das Problem ist in der Bedingung – Moudiz

Verwandte Themen