2017-05-29 1 views
1

Ich habe diese PHP-Dateien erstellt, die ein Python-Skripte mit Argumenten lesen und dieses Skript verarbeiten sollte.PHP-Variable ist immer leer, nachdem es einen Wert übergeben

$error = array(); 
$data = array(); 
include("./includes/common.php"); 

if($_SERVER["REQUEST_METHOD"] == 'POST' && isset($_POST["submit"])){ 
    $lbl10 = filter_input(INPUT_POST, 'lbl10', FILTER_SANITIZE_STRING); 
    $filePath = uploadFile('C:/xampp/htdocs/GraduationProject/images/test/'); 

    if(empty($error)){ 

     $output = shell_exec("C:/xampp/htdocs/GraduationProject/includes/train.py {$lbl10} {$filePath}"); 
     if($output){ 
      $ret = $db->getData("WHERE ID='{$output}'"); 
      while($row = $ret->fetchArray(SQLITE3_ASSOC)){ 
       $data = $row; 
      } 
     } 

     $success = "Data saved successfully!"; 
    } 
}else if($_SERVER["REQUEST_METHOD"] == 'POST'){ 
    $error[] = "Required Field Missing"; 
} 

$db->close(); 

Die PHP-Datei soll Ergebnis einig Ergebnisse nach der Python-Skript-Verarbeitung mit der Datenbank nach dieser if-Anweisung:

<?php if(!empty($data)){ ?> 

Aber nichts passiert, als $data immer leer zu sein scheint.

+1

Warum nicht Ihre Überprüfung der $ row und Wert $ data? –

Antwort

1

Vielleicht ist der Fehler hier

 while($row = $ret->fetchArray(SQLITE3_ASSOC)){ 
      $data = $row; 
     } 

weil jeder $ Datenwert Iteration überschreiben.

Ich denke, dass Sie ein anderes Verhalten benötigen. Vielleicht

 while($row = $ret->fetchArray(SQLITE3_ASSOC)){ 
      $data[] = $row; 
     } 

oder

 while($row = $ret->fetchArray(SQLITE3_ASSOC)){ 
      if (null != $row) { 
       $data = $row; 
      } 
     } 
+0

Ich habe beide Lösungen ausprobiert aber trotzdem passiert nichts. –

+0

Ich denke, er sollte hinzufügen, while (...) {$ data [] = $ ret-> fetchArray (...); } ' – SacrumDeus

Verwandte Themen