显示数据库查询结果

Posted

技术标签:

【中文标题】显示数据库查询结果【英文标题】:Displaying Database Query Results 【发布时间】:2013-07-15 08:22:17 【问题描述】:

假设我有一个表格。提交表单后,数据将提交到dataprocess.php 文件。 dataprocess.php 文件处理通过表单发送的变量并回显所需的输出。

仅使用 PHP(不使用 AJAX/javascript)似乎不可能回显到指定页面中的指定 div。我不想使用这些,因为某些浏览器可能禁用了这些。

我担心的是我想保持包含表单元素的页面的相同格式。我希望表单元素也在那里。我希望查询结果显示在表单下方。

我可以通过一些修改来回显精确的 html 代码,但这会占用大量内存,我希望它系统化。

    是否可以在同一页面内处理表单?而不是要求另一个 .php 文件来处理它?如何实现它?

    以上内容仅供参考。将 PHP 脚本包含在同一个 HTML 文件中会很长而且很混乱。此外,如果我有多个表单使用相同的 process.php 文件,该方法可能效率不高。

我实际上是在寻找有效的方法。 Web 开发人员如何在同一页面中显示查询结果?回显所有的 html 格式吗?另外,禁用 JavaScript 是否会禁用 jQuery/AJAX?

【问题讨论】:

禁用 javascript 会禁用 ajax/jquery,因为它们是 Javascript 的扩展。 【参考方案1】:

是的,可以在同一页面上处理表单。

<?php 

if (isset($POST)) 

  //write your insert query


?>

<html>
    <body>
        <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
        <!-- Your form elements and submit button -->
        </form>
        <table>
        <?php
          //your select query in a while loop
        ?>
        </table>
    </body>
</html>

但是如果您选择这种技术而不是 ajax,您必须为每个插入操作刷新所有页面。

一个例子

<div id="dialog-form">
    <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
            <table>
                <tr>
                    <td>Job</td>
                    <td>
                        <input type="text" name="job" />
                    </td>
                </tr
            </table>
            <input type="submit" value="Insert" />
    </fieldset>
    <input type="hidden" name="doProcess" value="Yes" />
    </form>
</div>

<?php

$myQuery= $db->prepare("INSERT INTO Jobs (job) VALUES (:p1)");


if (isset($_POST['doProcess']) && $_POST['doProcess'] == 'Yes')

    $myQuery->bindValue(":p1", $_POST['job'], PDO::PARAM_STR);  
    $myQuery->execute();



?>

【讨论】:

在表单中我有 action="process.php"。我是否输入相同的原始文件名,例如action="databasesearch.php"? @user2178841 是的,正如你所说的【参考方案2】:

如果你真的不想使用 ajax(我认为你应该这样做)。你可以这样做。

<form action="" method="POST">
   <input type="text" value="something" name="something_name"/>
    <?php
        if(isset($_POST['something_name']))
            echo '<div id="display_something_name_if_exists">';
            echo $_POST['something_name'];
            echo '</div>';
        
    ?>
</form>

基本上它所做的就是提交给自己,然后如果有提交(用 isset 测试),它会回显一个带有正确信息的 div。

【讨论】:

以上是关于显示数据库查询结果的主要内容,如果未能解决你的问题,请参考以下文章

用EL和JSTL显示查询结果显示不出来

MySQL查询结果中显示数据类型?

怎么用JAVA把数据库查询结果显示在网页上

sql查询结果横向显示?

SQL中只需要显示查询结果的指定的几行

mysql 直接修该数据表中的数据后 查询结果显示还是以前的数据,怎么解决?