2016-07-17 11 views
0

Ich füge den Namen und die Bewertung eines Spielers von meinem Handy ein. Dieser Teil funktioniert. Aber danach will ich den int-Wert einer Variablen namens player_id zurückbekommen, der der Primärschlüssel ist.eine Variable über PHP/MySQL aus einer Tabelle lesen

Also zuerst mache ich die Einfügeabfrage, die Daten werden eingefügt. Sobald dies erledigt ist, führe ich eine select-Abfrage aus, um die player_id der eingefügten Zeile vom Benutzer zu erhalten. Dies ist der Code.

<?php 
require "init.php"; 
header('Content-type: application/json'); 

$id_isSet = isset($_POST['player_id']); 
$user_id_isSet = isset($_POST['User_Id']); 
$best_player_isSet = isset($_POST['player']); 
$rate_isSet = isset($_POST['rating']); 

if ($id_isSet && $user_id_isSet && $best_player_isSet && $rate_isSet) { 

    $id = $_POST['player_id']; 
    $user_id = $_POST['User_Id']; 
    $best_player = $_POST['player']; 
    $rate = $_POST['rating']; 

    $sql_query = "INSERT INTO rating_players_table  
    VALUES('$id','$best_player','$rate','$user_id');"; 

    if (mysqli_query($con, $sql_query)) { 

     $query = "select * from rating_players_table LIMIT 1"; 

     $result = mysqli_query($con, query); 

     $row = mysqli_fetch_array($result); 

     if ($row) { 

      $post_id = $row['player_id']; 
      $don = array('result' => 'success', 'message' => $post_id); 
     } else { 

      $don = array('result' => 'fail', 'message' => 'player was not found'); 
     } 
    } 
} else if (!$best_player) { 

    $don = array('result' => "fail", "message" => "Insert player name"); 
} else if (!$rate) { 

    $don = array('result' => "fail", "message" => "Rate player"); 
} 

echo json_encode($don); 
?> 

und ich bekomme diese Antwort.

{"result":"fail","message":"player was not found"} 

Also selbst wenn ich die Daten durch mein Android-Smartphone hinzufügen können, die select-Abfrage funktioniert nicht :(. Irgendwelche Ideen, warum ist das passiert? Ich habe nie, die tief in PHP/MySQL gespielt. Aber ich bin immer dort, glaube ich.

Danke,

Theo.

EDIT

<?php 
require "init.php"; 
header('Content-type: application/json'); 

$id_isSet = isset($_POST['player_id']); 
$user_id_isSet = isset($_POST['User_Id']); 
$best_player_isSet = isset($_POST['player']); 
$rate_isSet = isset($_POST['rating']); 

if($id_isSet && $user_id_isSet && $best_player_isSet && $rate_isSet){ 

$id = $_POST['player_id']; 
$user_id = $_POST['User_Id']; 
$best_player = $_POST['player']; 
$rate = $_POST['rating']; 

$sql_query = "INSERT INTO rating_players_table  
VALUES('$id','$best_player','$rate','$user_id');"; 

if(mysqli_query($con,$sql_query)){ 

    mysqli_insert_id($con); 

    $don = array('result' =>"success","message"=>"Έγινε"); 
}  
}else if(!$best_player){ 

    $don = array('result' =>"fail","message"=>"Insert player name"); 

}else if(!$rate){ 

    $don = array('result' =>"fail","message"=>"Rate player"); 

} 

    $query = "select player from rating_players_table where player_id ='".mysqli_real_escape_string($con, $id)."' LIMIT 1";  

      $result = mysqli_query($con,query); 

      $row = mysqli_fetch_array($result); 

      if($row){ 

       $post_id = $row['player_id']; 
       mysqli_insert_id($post_id); 
       $don = array('result' =>'success','message'=>$post_id); 

      }else{ 

       $don = array('result' =>'fail','message'=>'player was not  
    found'); 
      } 
    echo json_encode($don); 

?> 
+0

, warum Sie nicht zuletzt Insert-ID der Variablen zuweisen und die Arbeit mit mit? – daremachine

+0

Was ist der Unterschied zwischen player_id und user_id? Es könnte Ihr Problem sein – daremachine

+0

Die user_id ist die ID des registrierten Benutzers. Ich erzähle dies mit der player_id der rating_players_table, so dass jeder Benutzer Daten posten kann. – Theo

Antwort

0

Sie können dafür mysqli_insert_id($con); nach Ihrer INSERT-Abfrageanweisung verwenden.

+0

posten bitte überprüfen Sie meine Bearbeitung. Es funktioniert immer noch nicht :( – Theo

0

Ok. Das Problem ist behoben. Endlich kann ich die player_id Variable lesen.

<?php 
require "init.php"; 
header('Content-type: application/json'); 

$id_isSet = isset($_POST['player_id']); 
$user_id_isSet = isset($_POST['User_Id']); 
$best_player_isSet = isset($_POST['player']); 
$rate_isSet = isset($_POST['rating']); 

if($id_isSet && $user_id_isSet && $best_player_isSet && $rate_isSet){ 

$id = $_POST['player_id']; 
$user_id = $_POST['User_Id']; 
$best_player = $_POST['player']; 
$rate = $_POST['rating']; 

$sql_query = "INSERT INTO rating_players_table  
VALUES('$id','$best_player','$rate','$user_id');"; 

if(mysqli_query($con,$sql_query)){ 

     $last_player_id = mysqli_insert_id($con); 
     $don = array('result' =>'success','message'=>$last_player_id); 
    }else{ 
     $don = array('fail' =>'success','message'=>'Κάτι πήγε λάθος'); 
    } 
     echo json_encode($don); 
    } 

?> 

Ich habe diese 2 Zeilen :).

$last_player_id = mysqli_insert_id($con); 
    $don = array('result' =>'success','message'=>$last_player_id); 

Ich reparierte dieses Problem, nachdem ich eine Stunde mein Fahrrad mit !! :)

Verwandte Themen