【发布时间】:2014-02-15 07:00:48
【问题描述】:
所以我有一个使用 PHP 和 MySQL 查询的页面。我想要做的基本上是创建一个“编辑”页面,该页面从我的数据库中获取数据并使用它来显示各种输入中的值。然后,用户可以更改输入中的数据,然后更新相应的 MySQL 表行。但是,无论出于何种原因,页面都没有显示表单,而是滚动到 else 语句。我可以验证 $_SESSION['weaponName'] 是否正常工作,因为它会回显正确的内容。关于为什么表单不会显示给我的任何想法?
edit.php
<?php
session_start();
$con=mysqli_connect("localhost","username","password","db_name");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$weaponName = $_SESSION['weaponName'];
$query = mysqli_query($con, "SELECT * FROM weapons limit 1");
if(mysqli_num_rows($query)>=1){
while($row = mysqli_fetch_array($query)) {
$creator= $row['creator'];
$weaponCategory= $row['weaponCategory'];
$weaponSubCategory= $row['weaponSubCategory'];
$costAmount= $row['costAmount'];
$costType= $row['costType'];
$damageS= $row['damageS'];
$damageM= $row['damageM'];
$critical= $row['critical'];
$rangeIncrement= $row['rangeIncrement'];
$weight= $row['weight'];
$weaponType= $row['weaponType'];
$masterwork= $row['masterwork'];
$attributes= $row['attributes'];
$specialAbilities= $row['specialAbilities'];
$additionalInfo= $row['additionalInfo'];
}
?>
<form action="weaponEditUpdate.php" method="post">
<input type="hidden" name="weaponName" value="<?php echo $weaponName;?>">
Weapon Name: <input type="text" name="weaponName" value="<?php echo $weaponName;?>">
<br>
Weapon Category: <select name="weaponCategory">
<?php while ($row = mysqli_fetch_array($query)) {
echo "<option value='" . $row['weaponCategory'] ."'>" . $row['weaponCategory'] ."</option>";
} ?>
</select>
<input type="Submit" value="Change">
</form>
<?php
}else{
echo 'No entry found. <a href="javascript:history.back()">Go back</a>';
}
?>
【问题讨论】:
-
马上,您将
mysqli_与mysql_混合在一起,所以这是不行的。您正在使用mysqli_进行连接,但使用mysql_进行查询 -
数组有什么问题?只需将您的
if更改为if ($row = mysql_fetch_array($query))并删除 while 循环。您在$row变量中拥有所需的所有信息。 -
(FYI)=> 这段代码有太多问题,这就是我没有费心回答的原因。
-
嘿,我的糟糕,我完全忘记了我正在连接 mysqli。我知道,迟钝。无论如何,我已经接受了你的所有建议,但仍然没有运气。另外,如果我只使用@jeroen 提到的
if语句,则页面只是空白。请原谅我的无知。如果有人对此有任何其他想法,我已经更新了代码以显示所做的更改。 -
我在这里看不到任何变化。编辑:啊,我们开始了,它刚刚开始。