1

我已经创建了 2 页。一个叫做test.php的只是上面有一些带有沼泽标准形式的 html。

<Form name ="form1" Method ="GET" Action ="result.php">

   room number: <INPUT TYPE = "TEXT" Name ="roomId">
   <INPUT TYPE = "Submit" Name = "Submit" VALUE = "Go">

</FORM>

另一个将处理它的页面称为 results.php。

$roomId = $_POST['roomId'];

            $sql = mysql_query("SELECT * FROM forestcourt WHERE id=$roomId");

            $id2 = 'id';
            $buildingName = 'buildingName';
            $subBuildings = 'subBuildings';
            $imagePath = 'imagePath';
            $description = 'description';


            $rows2 = mysql_fetch_assoc($sql);
            echo 'Name: ' . $rows2[$buildingName] . '<br/>' . 'Sub Buildings: ' . $rows2[$subBuildings] . '<br/>' . 'Description: ' . $rows2[$description] . '<br/>' . 'Location: ' . '<img src="../' . $rows2[$imagePath] . '"/>' . '<br/><br/>';

我希望它有效地做的是从 test.php 上的输入中获取值并将其存储在 results.php 页面上,就像$roomId按下提交按钮时一样。我已经将它与其他示例一起使用,但我不确定为什么它不在这里......希望我只是犯了一个简单的错误,有人可以指出它!

我知道该页面已连接到数据库,因为如果我对“results.php”进行一些评论,它会从数据库中获取信息。

如果我注释掉:

$roomId = $_POST['roomId'];

并改变:

$sql = mysql_query("SELECT * FROM forestcourt WHERE id=$roomId");

至;

$sql = mysql_query("SELECT * FROM forestcourt WHERE id=1");

results.php 页面上的信息与数据库中的信息相同。

当我完成这个过程时出现的一个错误是;

“警告:mysql_fetch_assoc():提供的参数不是第 49 行 /websites/123reg/LinuxPackage23/ed/ge/_g/xxx.co.uk/public_html/testing/result.php 中的有效 MySQL 结果资源”

第 49 行将是:

 $rows2 = mysql_fetch_assoc($sql);

在 results.php 上。

如果有人可以阐明为什么它不起作用,那就太好了。我对 MySQL 很陌生,我花了一天中最好的时间来解决这个问题!如果需要更多信息,我会尽快尝试提供。

4

3 回答 3

4

您应该更改method="post"test.php或更改$roomId = $_GET['roomId'];更改$roomId = $REQUEST['roomId'];results.php

于 2013-09-15T22:32:22.283 回答
0

您的操作页面result.php不是,如果您希望代码正常工作,请将results.php您的表单更改为:POST

<Form name ="form1" Method ="post" Action ="result.php">

   room number: <inpyt type = "text" Name ="roomId">
   <input TYPE = "Submit" Name = "Submit" VALUE = "Go">

</FORM>

在 php 中,首先检查你是否得到了这样的值:

if(isset($_POST['roomId'])) $roomId = $_POST['roomId'];
于 2013-09-15T22:35:06.803 回答
0
$sql = mysql_query("SELECT * FROM forestcourt WHERE id=1");

如果您想要上面的代码或类似$_POST['roomId'] = $roomid的工作。

而不是执行以下操作:

$sql = mysql_query("SELECT * FROM forestcourt WHERE id='1'"); 

或者

$sql = mysql_query("SELECT * FROM forestcourt WHERE id='$roomid'");

如果不是为了其他人,你可能已经解决了。

当然表单方法必须是 POST 或 GET 相应的。

于 2013-10-08T19:16:57.787 回答