2016-09-24 2 views
0

Ich habe Abfrage Update auf meine PHP-Datei. aber wenn ich diese Datei ausführen, meine Abfrage error.but, wenn ich bereits auf dem Prüfstand in einer Datenbankabfrage ist kein FehlerMeine Abfrage Update Fehler auf PHP

<?php 
session_start(); 

$conn = pg_connect("host=localhost port=5432 dbname=alc user=postgres password=postgres"); 

$training_id= "SELECT m.training_mst_id FROM tbl_user u, training_mst m WHERE u.user_id = m.trainer_id AND m.start_traning >= now() AND m.end_traning <= now() AND m.trainer_id = ".$_SESSION['user_id']; 
$result = pg_query($conn,$training_id); 
$query = "UPDATE training_mst set status='TRUE' where training_mst_id= ".$training_id; 
$result2 = pg_query($conn,$query); 

?> 

mein Fehler:

Warning: pg_query(): Query failed: ERROR: syntax error at or near "SELECT" LINE 1: ...ning_mst set status='TRUE' where training_mst_id= SELECT m.t...^in D:\xampp\htdocs\FeedbackALC\sistemuser\open_feedback.php on line 9

+1

Ihre Variable '$ training_id' enthält die vorherige SQL-Abfrage, keine ID. –

+0

mögliche Tippfehler im Code (Training statt Training) ... m.start_training> = now() AND mend_training <= now() ... – gavgrif

Antwort

1

Wie @Geral Schneider wies darauf hin, die Variable, die Sie als Wert in der zweiten SQL-Anweisung verwenden, ist die ursprüngliche SQL-Abfrage und nicht das Ergebnis. Sie müssen den Wert, den Sie benötigen, aus dem ursprünglichen Re-Cord-Set abrufen - das Folgende wird nicht getestet, kann jedoch einen Hinweis geben, wie Sie vorgehen sollen.

<?php 
    session_start(); 

    $conn = pg_connect("host=localhost port=5432 dbname=alc user=postgres password=postgres"); 

    $training_id= "SELECT m.training_mst_id FROM tbl_user u, training_mst m WHERE u.user_id = m.trainer_id AND m.start_traning >= now() AND m.end_traning <= now() AND m.trainer_id = ".$_SESSION['user_id']; 
    $result = pg_query($conn,$training_id); 

    if($result){ 

     $data=pg_fetch_object($result); 
     $id=$data->training_mst_id; 

     $query = "UPDATE training_mst set status='TRUE' where training_mst_id= ".$id; 
     $result2 = pg_query($conn,$query); 
    } 

?>