Показать объект JSON из метода POST на языке PHP

#php #json

#php #json

Вопрос:

Я пытаюсь извлечь объект JSON из sql-запроса php-файла.

Для этого я создаю html-код с формой, action=queryProduct.php и метод post.

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']) amp;amp; $_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-запрос, и он работает нормально…

Комментарии:

1. php.net/manual/en/function.pg-fetch-array.php

2. @AbraCadaver Я видел эту функцию, но мой запрос показывает только регистр, а не несколько. Это необходимо?

3. для чего вы отправляете $codigo ? Если он НЕ является чисто числовым, то ваш запрос не работает, вы вводите синтаксические ошибки. И обратите внимание, что pg_query возвращает ДЕСКРИПТОР результата, а не данные, которые вы запрашивали. Вы не можете json_encode этот дескриптор результата.

4. Посмотрите, что php.net/manual/en/function.pg-query.php возвращается. Используйте документы young Padawan.

Ответ №1:

RTM: http://php.net/pg_query

Возвращаемые значения: ресурс результата запроса при успешном выполнении или FALSE при сбое.

Это result resource НЕ то, что вы можете json_encode() . Вы должны извлекать строки результатов с помощью этого дескриптора, помещать их в массив, а затем кодировать этот массив.