我有一个问题,我无法解决。我有一个国家,地点,价格等实体的房屋数据库。我只使用以下方式打印表中的国家/地区:
while ($data = mysql_fetch_array($select))
其中$ select是一个从db中选择特定数据的查询。我想在我创建的其他页面上显示所选数据库数据的完整信息。问题是我不知道如何取得用户选择的数据的价格。当我得到$_SESSION['counter']
的价格时,它是数据库最后一个实体的数量。 。我不想使用javascript等。这是页面的代码:
<?php
require_once 'php/core.php'; // opens the database
require_once 'php/openDB.php'; // starts the new session
$select = mysql_query("SELECT ID, Country, City FROM Houses");
$counter = 1;
echo "<form action='house_profile.php' method='get'>
<table width='400'>
<tr>
<td>No.</td>
<td>Country</td>
<td>City</td>";
echo "<tr>";
while ($data = mysql_fetch_array($select))
{
echo "<tr>";
echo "<td>" . $counter . "</td>";
echo "<td>" . $data['Country'] . "</td>";
// echo "<td>" . "<a href='house_profile.php' type='submit' value='$counter'>" . $data['City'] . "</a>" . "</td>";
echo "<td>" . $data['City'] . "</td>";
echo "<td><input type='submit' value='info' name='" . $counter . "'></td>";
echo "</tr>";
$_SESSION['counter'] = $counter;
$counter++;
}
echo "</table>
</form>";
?>`
答案 0 :(得分:0)
您的查询从数据库中检索每个房屋的ID,但不显示(除非我不理解您的代码)。当用户选择房屋时,您必须检索ID,然后在单独的查询中使用它,例如
select price
from houses
where id = :ID
目前,您在表单上显示的是行计数器,而不是房子的ID - 这解释了您写作的原因......
当我得到$ _SESSION ['counter']的价格时,它是db的最后一个实体的数量。
您将行计数器的值传递给第二个查询而不是房子的ID。
答案 1 :(得分:0)
澄清: 您可以通过添加?将任何值传递给house_profile.php。启动查询字符串,然后是变量的名称和值。如果你想将id传递给house_profile,那么链接应该是这样的。
"<a href='house_profile.php?ID=" . $data['ID'] . "'>"
然后在house_profile.php中更新你的查询
$select = mysql_query("SELECT * FROM Houses where ID = " . $_GET['ID']);
现在只有他们点击的实体才可用。
FYI $计数器只是计数,它不一定是实体的ID。例如如果您删除ID 1,您的记录将从ID 2开始,但计数器将始终以1开头。因此,要正确引用您的实体,请使用数据库ID。