2017-02-25 90 views
1

我試圖從檢索數據PostgreSQL數據庫,在PHP如何使用php從postgresql中檢索數據並顯示在html中

檢索數據是好的,但它與HTML鏈接時不起作用。

當我在HTML界面點擊按鈕find,它並沒有真正從PostgrSQL檢索數據。

任何人都可以幫忙嗎?

PHP

$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> 

回答

1

你的代碼似乎要被罰款。如果您發佈文件本身嘗試使用

<form action="<?php echo $_SERVER["PHP_SELF"];?>" method="post"> 

確保您的查詢成功運行的問題可能與

<form action="php_insert_update_delete_search.php" 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> 
+0

它的工作,如果我用一個具體的查詢,如下:$ SQL =「SELECT * FROM monu_from_Lst WHERE名='GPS15'「;但是,當我使用$ sql =「SELECT * FROM \」monu_from_Lst \「WHERE objectid = $ data [0]」;它不能真正找到並迭代每個數據庫記錄,並且錯誤如下: 警告:pg_query():查詢失敗:錯誤:輸入末尾的語法錯誤LINE 1:SELECT * FROM「monu_from_Lst」WHERE objectid = ^在第55行的C:\ xampp \ htdocs \ test4.php中導致錯誤 – Sunnie

相關問題