【问题标题】:PHP: connecting to available remote db, retriving data from db and filling that data in an html form, and print form data as pdfPHP:连接到可用的远程数据库,从数据库中检索数据并将该数据填充到 html 表单中,并将表单数据打印为 pdf
【发布时间】:2012-08-22 09:58:38
【问题描述】:

我创建了一个包含 20 多个字段的 html 表单,并希望使用 php 将表单中的数据打印为页面或 pdf 以进行打印输出。

但大多数字段数据都在我已经可用的 sql server 2005 数据库中可用。但我无法访问该数据库。我需要访问它。访问数据库后,我需要使用输入到“id”和“日期”字段中的数据从数据库中检索数据作为“id”和“日期”。(示例查询:Select * from tablename where id=" 123" 和 date="12/08/2012" ; 或类似的东西)之后,我需要将这些数据推送到我的 html 表单中的相关字段中。输入所有内容后,一旦我单击提交。我需要它将所有这些信息显示为浏览器中的表格或 pdf,以便我可以将其打印出来。我阅读了 tcpdf,但无法理解它。希望你能帮忙。

谁能帮我解决这个问题?

请记住,我是编码、php 和数据库的新手。我对html有一点经验。但我不擅长高级的东西。

如果你能用一个与我类似的示例程序来回答我,我会很高兴的,其中包含所有必要的元素。先感谢您!我希望我没有要求太多。

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>TEST PHP DB</title>
        <?php
        if (!isset($_POST=""))
        {
            $mydb="OASIS";
            $conn=mssql_connect("Server", "admin", "password") or die ("Error in Connection");
            $select=mssql_select_db($mydb,$conn) or die("Couldn't connect to db");

            $pid=$_POST("ID");        
            $strSQL = "SELECT [First Name] FROM [Data Table] where Patient='$pid'";
            $rs = mssql_query($strSQL);

            while($row = mssql_fetch_array($rs)) 
            {
                echo $row["First Name"];
            }

            if (!$strSQL) 
            {
                die('MSSQL error: ' . mssql_get_last_message());
            }

            mssql_close($conn);
        }
        ?>
    </head>

    <body>
        <form name="test" method="POST">
            ID : <input name="ID" type="text">
            <input type="submit" value="Search">
            NAME : <input name="FirstName" type="text">
        </form>
    </body>
</html>

【问题讨论】:

  • 抱歉,您的问题有点令人困惑——您可以使用 SQL Server 中的数据,但您无法访问它们?就像您将它们存储在某个地方但无法直接访问数据库一样?
  • 我无法访问它们,因为我无法通过我试图实现的 php 代码访问数据库。现在清楚了吗?
  • 数据库在我办公室的服务器上。但不在我自己的系统上。
  • 是的,现在很清楚了,谢谢...所以据我所知,您需要能够通过 PHP 代码访问数据库 - 您是否尝试过在 PHP 中使用mssql functions?跨度>
  • 是的,我做到了..这就是我尝试过的.. $conn=mssql_connect("Server", "admin", "password") or die ("Error in Connection"); $select=mssql_select_db("OASIS",$conn) or die("Couldn't connect to db");

标签: php html sql-server-2005 tcpdf


【解决方案1】:

试试这个:

<?php
$mydb="OASIS";
echo $mydb;

$conn=mssql_connect("Server", "admin", "password") or die ("Error in Connection");
// this is only for debug purposes:
echo mssql_get_last_message();

$select=mssql_select_db($mydb,$conn) or die(mssql_get_last_message());

$pid=$_POST("ID");


$strSQL = "SELECT [First Name] FROM [Data Table] where Patient='$pid'";


$rs = mssql_query($strSQL);
// this is only for debug purposes:
echo mssql_get_last_message();


while($row = mssql_fetch_array($rs)) 
{

  echo $row["First Name"];

}

if (!$strSQL) 
{

        die('MSSQL error: ' . mssql_get_last_message());
}

mssql_close($conn);

?>

【讨论】:

  • 似乎不起作用..! :( 如果服务器是远程的,我是否必须更改服务器名称或提供扩展路径..我不确定是否是...但是如果我必须更改它..那么我会问我的上级。 .
  • 请包括当您说它不能正常工作时遇到的错误/消息/输出...至于服务器 URL,这是您需要知道的 - 最好是IP 地址,因此当您使用“mypage.com:1234”之类时不会进行额外的 DNS 解析
  • 当我在浏览器中查看时,它没有显示任何错误。我很困惑..!
  • 好的,这可能意味着连接正常 - 尝试执行 var_dump($conn);和 var_dump($rs);分别查看它们是否输出连接对象 - 如果它们输出,则表示没有任何内容与您的选择匹配,因此您可以回显您的 $strSQL 并直接在服务器上尝试 - 如果它也不返回任何值,您'都设置好了,只需要发布数据(我猜$pid现在是空的,这就是为什么没有选择任何东西)
  • 根据我的superioirs..表格已经填充......:/但我在我的php代码中尝试了var_dump()......!没有..!还尝试回显 $strSQL ......还是一样......可能是我需要更改的一些浏览器设置吗?
【解决方案2】:

第一部分你需要有SQL Server drivers,你可以在php和SQL Server之间建立连接。请查看此tutorial 了解更多信息。

对于第二部分,很简单,你需要在你的网站上实现AJAX。输入 id 和日期后,必须对服务器进行 AJAX 调用以进行必要的查询,结果可以显示在其余字段中。这是 AJAX 和 PHP 上的 tutorial,它实现了从 MySql 数据库动态自动填充表单。

要将您的 HTML 转换为 PHP,请查看 example

我希望这会有所帮助。

【讨论】:

  • 我必须使用 AJAX 吗?恐怕我要花太长时间才能接起来..!
  • 不,你没有。尽管它是用户体验最简洁的解决方案,但它不是必需的。首先专注于 html/php 部分。当一切正常时,提高一个级别并学习 javascript。之后才开始使用 ajax(ajax 实际上是 javascript 的一种技术)。
  • 否则它更像是加载一个新的页面,这是一个糟糕的用户体验。和你想要的相当简单。不应该花太多时间来弄清楚。
  • 您能帮我提供一些可以在我的页面上应用的示例代码吗?
  • 我更改了上述答案中的链接。看看。它几乎完全符合您的要求。
猜你喜欢
  • 2020-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-19
  • 2011-05-29
  • 2022-01-20
相关资源
最近更新 更多