2016-10-13 58 views
-1

我試圖從php文件的sql查詢中檢索JSON對象。以PHP語言顯示方法POST的JSON對象

爲此,我使用form,action = queryProduct.php和method post來製作html代碼。

HTML代碼:

    <form action="queryProduct.php" method="post"> 
        <input name="codigo" type="text" placeholder="codigo"> 
        <input type="submit" value="TEST"> 
        </form> 

queryProduct.php:

<?php 
     session_start(); 

     if(isset($_SESSION['username']) && $_SESSION['username'] <> ''){ 

      include("functions.php"); 
      include("tools.php"); 

      $conn = Conectarse("localhost", "5432", "dbname", "dbuser", "dbpass"); 

      $codigo = $_POST['codigo']; 

      echo $codigo; 

      $query = "SELECT * FROM produccion.ma_producto WHERE codigo={$codigo}"; 

      $result = pg_query($conn, $query); 

      if (!$result) { 
       echo "Error query: " . pg_last_error($conn); 
      } else { 
       header('Content-type: application/json; charset=utf-8'); 
       echo json_encode($result); 
      } 

     echo json_encode($result); 

      pg_close($conn);  

     } else{ 
      ?><p>La sesión no está activa, por favor ingrese <a href="login.php">aquí</a></p> 
<?php 
     }?> 

的想法是:這是從查詢結果作出JSON對象並顯示對象的瀏覽器:echo json_encode($result);

現在它不是什麼:(

我測試了SQL查詢和它的正常工作......

+0

http://php.net/manual/en/function.pg-fetch-array.php – AbraCadaver

+0

@AbraCadaver我看過這個函數,但我的查詢只顯示一個寄存器,而不是多個。有必要嗎? – ruzD

+0

你爲'$ codigo'發送了什麼?如果它不是**純數字,那麼你的查詢不起作用,你正在引入語法錯誤。並且請注意,pg_query返回結果HANDLE,而不是您查詢的數據。你不能json_encode那個結果句柄。 –

回答

1

RTM:http://php.net/pg_query

返回值:上失敗是成功還是假的查詢結果資源。

result resource東西,你可以json_encode()。您必須通過該句柄提取結果行,將其放入數組中,然後對該數組進行編碼。