...通常不应该太难,但由于某种原因我无法让它发挥作用。我可能错过了一些东西或弄错了,我不知道,但无论如何我都找不到它。
include('connect-db.php');
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$query = "SELECT * FROM articles ORDER BY orderid";
$result = mysql_query($query) or die(mysql_error());
$count = mysql_num_rows($result);
?>
<div class="content-holder">
<form action="" method="post">
<table border='1' cellpadding='10' id='ViewTable'>
<tr>
<th>Volgorde</th>
<th>Titel</th>
</tr>
<?php
while($row = mysql_fetch_array($result))
{
$orderid = $row['orderid'];
$title = $row['title'];
?>
<tr>
<td><input type="textbox" class="TextAreaTitle" name="order" value="<?=$orderid?>"></td>
<td><?=$title?></td>
</tr>
<?php
}
?>
</table>
<input type="submit" name="submit" class="submitlink" Value="Verzenden">
</form>
</div>
<?php
if(isset($_POST['submit']))
{
mysql_query("UPDATE articles SET orderid=$orderid WHERE title=$title");
echo "Updated!";
}
?>
我只是粘贴了整个代码,以确保。在网页上,你基本上看到的是一个带有colomns orderid和title的表,以及它们各自的行。 orderid可以更改为文本框。我想要实现的是一个(或多个)orderid被更改,并且您单击按钮,然后我希望orderid在我的数据库中相应地更改。
提前感谢您的帮助。有任何问题请询问。
编辑:我完全忘记提及这一点,但是现在当我点击按钮时会发生什么,它会返回回显“已更新!”但数据库实际上并没有更新。答案 0 :(得分:2)
mysql_query("UPDATE articles SET orderid=$orderid WHERE title=$title");
这需要引用表单中的<input>
字段,如下所示:
$orderid = $_POST['order'];
$title = $_POST['title'];
mysql_query("UPDATE articles SET orderid=$orderid WHERE title=$title");
您永远不会从表单中发布title
值。您需要在表单中添加<input name="title" />
,因此请添加该表单。否则它将始终使用while循环中的最后一个值。
如果您正在阅读$ _POST,则需要添加输入验证。否则你很容易受到攻击。
编辑:我修改了一下。
include('connect-db.php');
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$query = "SELECT * FROM articles ORDER BY orderid";
$result = mysql_query($query) or die(mysql_error());
$count = mysql_num_rows($result);
?>
<div class="content-holder">
<form action="" method="post">
<table border='1' cellpadding='10' id='ViewTable'>
<tr>
<th>Volgorde</th>
<th>Titel</th>
</tr>
<?php
while($row = mysql_fetch_array($result))
{
$orderid = $row['orderid'];
$title = $row['title'];
?>
<tr>
<td><input type="textbox" class="TextAreaTitle" name="order[]" value="<?=$orderid?>"><input type="hidden" name="title[]" value="<?=$title?>"></td>
<td><?=$title?></td>
</tr>
<?php
}
?>
</table>
<input type="submit" name="submit" class="submitlink" Value="Verzenden">
</form>
</div>
<?php
if(isset($_POST['submit']))
{
for ($i=count($_POST['title']); $i--;) {
$orderid = $_POST['order'][$i];
$title = $_POST['title'][$i];
mysql_query("UPDATE articles SET orderid=$orderid WHERE title=$title");
}
echo "Updated!";
}
?>
答案 1 :(得分:0)
如果您使用name="order[]"
它将返回数组,你必须使用foreach
答案 2 :(得分:-1)
有时它会产生这些类型的错误。在插入数据或从数据库中检索时,它有不同的语法,所以应该尝试所有的解决方案
mysql_query(“UPDATE articles SET orderid ='”。$ orderid。“'WHERE title ='”。$ title。“'”); echo“更新!”;
答案 3 :(得分:-1)
我希望它可见
mysql_query(“UPDATE articles SET orderid ='”。$ orderid。“'WHERE title ='”。$ title。“'”); echo“更新!”;