我试着用PHP从PostgreSQL数据库中检索数据。
检索数据是可以的,但是当它与HTML链接时就不起作用了。
当我在HTML界面中单击find按钮时,它并没有真正从PostgrSQL检索数据。
有人能帮忙吗?
菲律宾比索

$host        = "host=sv4gis";
$dbname      = "dbname=survey";
$credentials = "user=sde password=dfd54f";

$objectid = "";
$jobno = "";
$unit = "";
$coordinate = "";
$name = "";
$northing = "";
$easting = "";
$elev = "";

$db = pg_connect( "$host $dbname $credentials"  );
if(!$db){
    echo "Error : Unable to open database\n";
} else {
    echo "Opened database successfully\n";
}

function getPosts() {
    $posts = array();
    $posts[0] = $_POST['objectid'];
    $posts[1] = $_POST['jobno'];
    $posts[2] = $_POST['unit'];
    $posts[3] = $_POST['coordinate'];
    $posts[4] = $_POST['name'];
    $posts[5] = $_POST['northing'];
    $posts[6] = $_POST['easting'];
    $posts[7] = $_POST['elev'];

    return $posts;
}

// Selection Operation
if (isset($_POST['search'])) {
    $data = getPosts();
    $sql = "SELECT * FROM monu_from_Lst WHERE OBJECTID = $data[0]";
    $ret = pg_query($db, $sql);

    if($ret) {
        if(pg_num_rows($ret)) {
            while($row = pg_fetch_array($ret)) {
                echo    $objectid = $row['objectid'];
                echo     $jobno = $row['jobno'];
                echo    $unit = $row['unit'];
                echo     $coordinate = $row['coordinate'];
                echo    $name = $row['name'];
                echo     $northing = $row['northing'];
                echo    $easting = $row['easting'];
                echo     $elev = $row['elev'];
            }
            echo "Operation done successfully\n";
            // pg_close($db);

        }else{
            echo 'No Data For This Id';
        }
    } else {
        echo 'Result Error';
    }
}

HTML格式
<form action="php_insert_update_delete_search.php" method="post">
    <input type="number" name="objectid" placeholder="OBJECTID" value="<?php echo $objectid;?>">
    <input type="text" name="jobno" placeholder="JOB#" value="<?php echo $jobno;?>">
    <input type="text" name="unit" placeholder="UNIT" value="<?php echo $unit;?>">
    <input type="text" name="coordinate" placeholder="COORDINATE" value="<?php echo $coordinate;?>">
    <input type="text" name="name" placeholder="NAME" value="<?php echo $name;?>">
    <input type="number" name="northing" placeholder="NORTHING" value="<?php echo $northing;?>">
    <input type="number" name="northing" placeholder="NORTHING" value="<?php echo $northing;?>">
    <input type="number" name="easting" placeholder="EASTING" value="<?php echo $easting;?>">
    <input type="number" name="elev" placeholder="ElEVATION" value="<?php echo $elev;?>">
    <div>
        <input type="submit" name="search" value="Find">
    </div>
</form>

最佳答案

你的代码看起来不错。问题可能是

<form action="php_insert_update_delete_search.php" method="post">

如果要将文件发布到自身,请尝试使用
<form action="<?php echo $_SERVER["PHP_SELF"];?>" method="post">

确保查询成功运行。如果查询未成功运行
尝试跟随
$sql = "SELECT * FROM  \"monu_from_Lst\" WHERE objectid= $data[0]";

我的工作代码如下
<?php

$host        = "host=localhost";  // use your hostname
$dbname      = "dbname=blogsitedb"; // use your dbname
$credentials = "user=postgres password=admin"; // use your credentials

$objectid = "";
$jobno = "";
$unit = "";
$coordinate = "";
$name = "";
$northing = "";
$easting = "";
$elev = "";



$db = pg_connect("$host $dbname $credentials");

if(!$db)
{
    echo "Error : Unable to open database\n";
}
else
{
    echo "Opened database successfully\n";
}

function getPosts()
{
  $posts = array();
  $posts[0] = $_POST['objectid'];
  $posts[1] = $_POST['jobno'];
  $posts[2] = $_POST['unit'];
  /*

  $posts[3] = $_POST['coordinate'];
  $posts[4] = $_POST['name'];
  $posts[5] = $_POST['northing'];
  $posts[6] = $_POST['easting'];
  $posts[7] = $_POST['elev'];

  */

  return $posts;
}


// Selection Operation
if(isset($_POST['search']))
{
    $data = getPosts();
    $sql = "SELECT * FROM  \"monu_from_Lst\" WHERE objectid= $data[0]";

    $ret = pg_query($db, $sql);

     if($ret)
    {
        if(pg_num_rows($ret))
        {
            while($row = pg_fetch_array($ret))
            {
            echo    $objectid = $row['objectid'];
            echo     $jobno = $row['jobno'];
            echo    $unit = $row['unit'];
            /*echo     $coordinate = $row['coordinate'];
            echo    $name = $row['name'];
            echo     $northing = $row['northing'];
            echo    $easting = $row['easting'];
            echo     $elev = $row['elev'];*/
            }
             echo "Operation done successfully\n";
             // pg_close($db);

        }
        else
        {
            echo 'No Data For This Id';
        }
    }
    else
    {
        echo 'Result Error';
    }
}

?>

  <!DOCTYPE Html>
    <html>
        <head>
            <title>PHP INSERT UPDATE DELETE SEARCH</title>
        </head>
        <body>
            <form action="<?php echo $_SERVER["PHP_SELF"];?>" method="post">
                <input type="number" name="objectid" placeholder="OBJECTID" value="<?php echo $objectid;?>"><br><br>
                <input type="text" name="jobno" placeholder="JOB#" value="<?php echo $jobno;?>"><br><br>
                <input type="text" name="unit" placeholder="UNIT" value="<?php echo $unit;?>"><br><br>
                <input type="text" name="coordinate" placeholder="COORDINATE" value="<?php echo $coordinate;?>"><br><br>
                 <input type="text" name="name" placeholder="NAME" value="<?php echo $name;?>"><br><br>
                 <input type="number" name="northing" placeholder="NORTHING" value="<?php echo $northing;?>"><br><br>
                <input type="number" name="northing" placeholder="NORTHING" value="<?php echo $northing;?>"><br><br>
                <input type="number" name="easting" placeholder="EASTING" value="<?php echo $easting;?>"><br><br>
                <input type="number" name="elev" placeholder="ElEVATION" value="<?php echo $elev;?>"><br><br>

                <div>

                    <!-- Input For Find Values With The given objectid -->

                     <input type="submit" name="search" value="Find">

                </div>
            </form>
        </body>
    </html>

关于php - 如何使用php从postgresql检索数据并在html中显示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42450789/

10-11 01:57
查看更多