php - 如何使用 PHP 显示 postgresql 搜索结果

标签 php postgresql

问题

您好,我正在创建一个搜索功能,允许用户搜索特定的 E-Number 并查看它是否来自动物,基本上是查看它是否是素食主义者。我已在我的网站上使用 PHP 成功连接到数据库。

代码

页面顶部:

<?php       
// Connecting, selecting database
$dbconn = pg_connect("host=***** port=*****
dbname=**** user=**** password=*****")
or die('Could not connect: ' . pg_last_error());

//collect
if(isset($_POST['search'])) {
    $searchq = $_POST['search'];

// Performing SQL query
$query = 'SELECT vegan FROM enumbers WHERE code = searchq';
}


?>

搜索栏:

<div id="tablebox">
        <!-- Search bar -->
        <p>Is It Vegan?</p>
        <form name="form1" method="post" action="searchEnumbers.php">
            <input name="search" type="text" size="30" maxlength="5" />
            <input name="submit" type="submit" value="Search" />
        </form>
</div>

我现在如何显示搜索到的“素食主义者”结果?我不确定如何打印结果。

更新

enumbers 表中的列名是:'code'、'name'、'type' 和 'vegan'。

<?php       
    // Connecting, selecting database
    $dbconn = pg_connect("host=db.dcs.aber.ac.uk port=5432
    dbname=cs399030_16_17 user=sec17 password=Liverpool2112")
    or die('Could not connect: ' . pg_last_error());

    //collect
    if(isset($_POST['search'])) {
        $searchq = $_POST['search'];

        // Performing SQL query
        $pg_query = 'SELECT vegan FROM enumbers WHERE code = '.$searchq;
        $result = pg_query($query);

        foreach($result as $r){ //If you have multiple records or $result
          echo "<p> Your ".$r->params." or ".$r['params']." here </p>"; //for instance
       }
    }

?>

最佳答案

你应该有这样的东西:

<?php       
// Connecting, selecting database
$dbconn = pg_connect("host=**** port=****
dbname=**** user=**** password=****")
or die('Could not connect: ' . pg_last_error());

//collect
if(isset($_POST['search'])) {
    $searchq = $_POST['search'];

   // Performing SQL query
   $query = 'SELECT vegan FROM enumbers WHERE code = '.$searchq; 

   // make the query with: pg_query
   // $result = pg_query($query);

   foreach($result as $r){ //If you have multiple records or $result
      echo "<p> Your ".$r->params." or ".$r['params']." here </p>"; //for instance
   }

   //you could use: var_dump(pg_fetch_all($result));
}

?>

<!-- If you want to show always the form. If not, put inside the else -->
<div id="tablebox">
        <!-- Search bar -->
        <p>Is It Vegan?</p>
        <form name="form1" method="post" action="searchEnumbers.php">
            <input name="search" type="text" size="30" maxlength="5" />
            <input name="submit" type="submit" value="Search" />
        </form>
</div>

请注意,这不是执行此操作的最佳方式(您可以使用 AJAX 和不同的页面以便现在刷新页面),或其他方式。但这可以按照您想要的方式工作。

查看来自 PHP 的官方文档:http://php.net/manual/kr/function.pg-connect.php

希望对您有所帮助!

关于php - 如何使用 PHP 显示 postgresql 搜索结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43497587/

相关文章:

php - 尝试插入同一个表并选择相同数据的最后一条记录时的 MySql 触发器

php - Lumen Model::find() 不选择主键

php - 如何使用 PHP 获取文件名?

带有CSS问题的PHP随机DIV

PHP 如果简写并在一行中回显 - 可能吗?

postgresql - 库未加载 :/usr/local/opt/readline/lib/libreadline. 6.2.dylib

postgresql - 从边界框(内部和重叠)中提取几何图形并将结果复制到新的空数据库

sql - 这个case怎么单查询

PostgreSQL - 如果输入错误,如何取消在 psql 终端中输入的内容?

postgresql - postgres 中的 GROUP BY 列和子句