我在编程方面只是一个初学者,所以我只是通过教程来引用我的所有代码。幸运的是,我在youtube中找到了这个在线教程,允许用户使用php在mysql中添加,更新和删除数据。我遵循他的所有指示,我开始工作但是当我在上面添加css时它停止了。
这不是一般性问题,我只需要一些帮助。如果有人可以帮助我,非常感谢。非常感谢你。
Maintenance.php
<?php
$servername = "localhost";
$username = "root";
$password = "";
$database = "rssfeed";
$connect = mysqli_connect($servername, $username, $password, $database);
if (!$connect) {
die("Cannot connect: " . mysqli_connect_error());
}
mysqli_select_db($connect, $database);
$sql = "SELECT * FROM `maintenance`";
$data = mysqli_query($connect, $sql);
if (isset($_POST['update'])) {
$update = "UPDATE `maintenance` SET `name`='".$_POST['name']."', `url`='".$_POST['url']."', `description`='".$_POST['desc']."' WHERE `name`='".$_POST['hidden']."'";
mysqli_query($connect, $update);
}
echo""
. "<table>"
. "<tr>"
. "<th>Name</th>"
. "<th>URL</th>"
. "<th>Description</th>"
. "<th colspan=2>Action</th>"
. "</tr>";
while ($record = mysqli_fetch_array($data)) {
echo""
. "<form action=maintenance.php method=POST>"
. "<tr>"
. "<td><input class=textbox type=text name=name value='" . $record['name'] . "'> </td>"
. "<td><input class=textbox size=50 type=url name=url value='" . $record['url'] . "'> </td>"
. "<td><textarea class=textbox rows=3 cols=50 wrap=physical name=desc>" . $record['description'] . "</textarea></td>"
. "<input type=hidden name=hidden value=" . $record['name'] . ">"
. "<td><input type=submit name=update value=update></td>"
. "<td><input type=submit name=delete value=delete></td>"
. "</tr>"
. "</form>";
}
echo""
. "</table>";
mysqli_close($connect);
?>
我试过if和else声明我的代码是否有问题。从技术上讲,它说成功,但它没有。它没有通过mysql更新,也没有在我的输入字段中更新。任何帮助都会做!请
我得到了它的工作。我的输入字段代码出错,我的$ _POST [&#39;隐藏&#39;]的值与我桌子上的名字值不匹配。使用var_dump打印更新查询它帮助我查看我的代码并得到了究竟是什么问题。
错误代码
"<input class=textbox type=text name=name value='" . $record['name'] . "'>"
"<input type=hidden name=hidden value=" . $record['name'] . ">"
固定代码
"<input type=hidden name=hidden value='" . $record['name'] . "'>"
答案 0 :(得分:4)
将SQL查询输出为字符串并在数据库上手动运行,并检查是否抛出错误。还要检查传递的参数是否是你想要的参数。
在为变量if (isset($_POST['update'])
分配了查询后的$update
中,只需使用echo $update
或var_dump($update)
,即可。现在在浏览器上运行测试并查看打印内容。
一旦你的浏览器上有这个字符串,并且一切看起来都很好,可以使用命令提示符/终端或Workbench之类的应用程序查询数据库,看看会发生什么。如果您愿意在此处发布该字符串,那么我们可以检查它是否已正确创建。
答案 1 :(得分:1)
您的代码存在一个明显的问题:
$data = mysqli_query($connect, "SELECT * FROM `maintenance`");
当您发出SELECT
查询时,数据库服务器开始工作,收集所有结果,并将它们放在整齐的小方框中,供您以后使用。
当mysqli_query()
返回时,所有工作都已完成,每个人都已经回家了,只有守夜人等着你去取结果。
mysqli_query($connect, "UPDATE `maintenance` ...");
另一个问题,另一天在工厂。此查询不会以任何方式影响昨天的结果。
while ($record = mysqli_fetch_array($data)) {
...
}
在这里,你正在接受昨天的结果。
如果您希望更新的结果显示在网页上,则需要在UPDATE
之前运行SELECT
。
答案 2 :(得分:1)
我得到了它的工作。我的输入字段代码出错,我的$ _POST [&#39;隐藏&#39;]的值与我桌子上的名字值不匹配。使用var_dump打印更新查询它帮助我查看我的代码并得到了究竟是什么问题。
错误代码
"<input class=textbox type=text name=name value='" . $record['name'] . "'>"
"<input type=hidden name=hidden value=" . $record['name'] . ">"
固定代码
"<input type=hidden name=hidden value='" . $record['name'] . "'>"
感谢Dinesh给了我这个主意。