2016-09-17 103 views
0

從應用程序中查詢不被更新,但我可以做手工更新執行從網址查詢,但執行會執行查詢

這是URL,請注意,如果你exucte吧,查詢將要運行

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

這是PHP的,我知道PHP需要改進

$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); 

這是代碼

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"; 
     } 

我沒有收到錯誤,並且asyctask看起來不錯

+0

我不明白你有什麼問題。你能詳細一點嗎? – jonathanrz

+0

@jonathanrz我正在執行asynctask更新列,但它不執行,從應用程序,當我打開此活動並執行asytask,我去數據庫,我看到值仍然相同,如果我運行查詢手動它工作 – Moudiz

回答

1

你的API只支持GET方法。你不需要爲此創建一個RequestBody

試試這個,

@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"; 
} 

嘗試在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

沒有工作仍然更新不工作 – Moudiz

+0

奇怪的是在url我傳遞參數作爲整數,在應用程序中,我發送他們作爲字符串,但在PHP中,我正在轉換他們。 prblm可能嗎? – Moudiz

+0

我注意到一些東西,我已經從查詢中刪除了where條件。問題出現在條件 – Moudiz