4

我有一个包含以下字段的清真寺数据库:mosque_id、mosque_name、prefecture、address、postal_code、website、email1、phone1。我要做的是在表单中显示第一个清真寺(mosque_id=1)的信息,当我点击“下一步”时,将显示第二个清真寺(mosque_id=2)的信息。

到目前为止,我已经能够使用 mosque_id 来选择一整行并显示信息,但我一直在努力寻找一种方法来切换到下一个。我对 PHP 和 MYSQL 很陌生,任何帮助将不胜感激。

<?
$mosque_id = 1;
$result = mysql_query("SELECT * FROM Mosque WHERE mosque_id='$mosque_id'");
$row = mysql_fetch_assoc($result);
?>

<form action="insert.php" method="post">
Mosque Name: <?php print('<input type="text" name="firstname" value="' . $row['mosque_name'] . '"/><br>')?>
Prefecture: <?php print('<input type="text" name="firstname" value="' . $row['prefecture'] . '"/><br>')?>
Address: <?php print('<input type="text" value="' . $row['address'] . '"/><br>')?>
Postal Code: <?php print('<input type="text" value="' . $row['postal_code'] . '"/><br>')?>
Website: <?php print('<input type="text" value="' . $row['website'] . '"/><br>')?>
Email 1: <?php print('<input type="text" value="' . $row['email1'] . '"/><br>')?>
Contact number 1: <?php print('<input type="text" value="' . $row['phone1'] . '"/><br>')?>

<input type="button" value="Next Mosque" onclick=""/>
</form>
4

3 回答 3

4
    <?php
$mosque_id = (isset($_GET['mosque_id']) ? intval($_GET['mosque_id']) : 1); // suppose you know that '1' is the first id in your table
$result = mysql_query("SELECT * FROM Mosque WHERE mosque_id>='$mosque_id' limit 2");
$row = mysql_fetch_assoc($result); // this is the row you're gonna display in the form
$row2 = mysql_fetch_assoc($result); // this will tell us about the next row
?>
<form action="insert.php" method="post">
Mosque Name: <?php print('<input type="text" name="firstname" value="' . $row['mosque_name'] . '"/><br>')?>
Prefecture: <?php print('<input type="text" name="firstname" value="' . $row['prefecture'] . '"/><br>')?>
Address: <?php print('<input type="text" value="' . $row['address'] . '"/><br>')?>
Postal Code: <?php print('<input type="text" value="' . $row['postal_code'] . '"/><br>')?>
Website: <?php print('<input type="text" value="' . $row['website'] . '"/><br>')?>
Email 1: <?php print('<input type="text" value="' . $row['email1'] . '"/><br>')?>
Contact number 1: <?php print('<input type="text" value="' . $row['phone1'] . '"/><br>')?>

<input type="button" value="Next Mosque" onclick="window.location = 'path-to-your-page?mosque_id=<?php echo $row2['mosque_id'];"/>
</form>
于 2012-11-13T09:08:45.700 回答
1

第一:请使用 mysqli 函数或 PDO 类,而不是 mysql 函数,它们已被弃用。

其次:使用长PHP标签

但你在正确的轨道上:

将您的第一行替换为:

$mosque_id = (isset($_GET['mosque_id']) ? intval($_GET['mosque_id']) : 1);

最后

<input type="button" value="Next Mosque" onclick="javascript: document.location = '?mosque_id=<?php echo ($mosque_id + 1);?>"/>

您还需要在查询后编写一些检查,如果这样的 id 存在,实际上,如果您进一步开发,您还需要检查下一个 mosque_id,因为如果您删除一些行,id-s 可能不是像 1 那样的正确顺序, 2、3、4 但 1、3、7、9(提示:对于下一个 id,在 MySQL 中使用 WHERE mosque_id > current_id ORDER BY mosque_id DESC LIMIT 1)

于 2012-11-13T08:58:35.760 回答
1

只需有一个隐藏的输入来保存 ID,并在页面加载时增加它。然后,当您提交时,ID 也将被提交。

<?
if (isset($_POST['id']) {
   $id = $_POST['id'];
}
else {
    $id = 1;
}

$result = mysql_query("SELECT * FROM Mosque WHERE mosque_id='$id'");
...
?>

<form action="insert.php" method="post">
...

<input type='hidden' name='id' value='<?php echo $mosque_id++; ?> />
<input value="Next Mosque" />
</form>

顺便说一句,使用PDO。它非常容易学习,并为您的应用程序增加了高度的安全性。

于 2012-11-13T08:58:41.480 回答