2016-09-19 2 views
0

Mein PHP-Code funktioniert und es sagt, das Ergebnis ist Erfolg und auch in meinem Android, aber es nicht meine Abfrage, um eine Zeile zu aktualisieren ist nur sagen, Erfolg, aber nicht zu aktualisieren. Und ich bin mir sehr sicher, dass die CarStatus und die Car_No sind in meinem db.Android PHP-Abfrage funktioniert nicht

PHP QUERY

<?php 
include_once("connection.php"); 

if(isset($_POST['txtCarNo']) && isset($_POST['txtCarStatus'])) 
{ 
    $carNo = $_POST['txtCarNo']; 
    $carStatus = $_POST['txtCarStatus']; 

    $query = "UPDATE tbl_cars SET carStatus = '$carStatus' WHERE Car_No = '$carNo'"; 
    $result = mysqli_query($conn,$query); 
    if($result > 0){ 
     echo "success"; 
     exit; 
    }else{ 
     echo "failed"; 
     exit; 
    } 
} 
?> 

MOBILE

HashMap post = new HashMap(); 

    post.put("txtCarNo",tvCarID.toString()); 
    post.put("txtCarStatus","for approval"); 

    PostResponseAsyncTask task1 = new PostResponseAsyncTask(DetailActivity.this, post, new AsyncResponse() { 
     @Override 
     public void processFinish(String s) { 
      if (s.contains("success")) { 
       Log.d(TAG, s); 
       Toast.makeText(DetailActivity.this, "Wait for owners approval", Toast.LENGTH_SHORT).show(); 
       Intent in = new Intent(DetailActivity.this, RenterTabs.class); 
       startActivity(in); 
       finish(); 
      } else { 
       Toast.makeText(getApplicationContext(), "Error", Toast.LENGTH_SHORT).show(); 
      } 
     } 
    }); 
    task1.execute("http://carkila.esy.es/carkila/rent2.php"); 
} 

EDIT

Connection.php

<?php 
$servername = "***"; 
$username = "***"; 
$password = "***"; 
$dbname = "***"; 

$conn = mysqli_connect($servername, $username, $password, $dbname); 

if (!$conn) { 
die("Connection failed: " . mysqli_connect_error()); 
} 
?> 
+2

** WARNUNG **: Bei der Verwendung von 'mysqli' Sie [parametrisierte Abfragen] verwenden sollten (http://php.net/manual/en/mysqli .quickstart.prepared-statements.php) und ['bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php), um Benutzerdaten zu Ihrer Abfrage hinzuzufügen. ** Verwenden Sie NICHT ** String-Interpolation oder Verkettung, um dies zu erreichen, weil Sie einen schwerwiegenden [SQL injection bug] erstellt haben (http://bobby-tables.com/). ** NIEMALS ** $ _POST 'oder' $ _GET' Daten direkt in eine Abfrage einfügen, es kann sehr schädlich sein, wenn jemand versucht, Ihren Fehler auszunutzen. – tadman

+2

'$ Ergebnis> 0 'ist logisch falsch. 'mysql_query' gibt ein Statement-Handle oder ein Boolean-False zurück. Es gibt NIE eine Ganzzahl zurück. es sollte 'if ($ result === false) {echo 'fehlgeschlagen' sein; } else {echo 'Erfolg'; } '. Beachten Sie, dass ein Update, bei dem keine Zeilen aktualisiert wurden, kein Fehler ist. Es ist einfach ein Update, das nichts geändert hat. Sie müssen stattdessen affected_rows überprüfen. –

+0

Warum reagiert das PHP-Skript nicht auf etwas, wenn beide isset() s fehlschlagen? – greenapps

Antwort

0

Auf post.put("txtCarNo",tvCarID.toString()); tvCarID braucht ein .getText so stattdessen machen postData.put("txtCarNo",tvCarID.getText().toString());