我测试了update语句中的变量并检查了是否建立了数据库连接,但是查询没有运行,请您在我的代码中告诉我错误。
for($i=0; $i <= $numcourses; $i++){
echo '<div class="new'.$i.'" id="new'.$i.'"><label>'.$course_names[$i].'</label>
<input name="edit'.$i.'" type="submit" value="Edit" /><input name="delete'.$i.'" type="submit" value="Delete" /><br /></div>';
$name="edit".$i;
if (isset($_POST[$name])){
echo '<input name="text" type="text" value="'.$course_names[$i].'" /><input name="save'.$i.'" type="submit" value="Save"/>';
}
$name2="save".$i;
if (isset($_POST[$name2])){
include "includes/open.php";
$newname=($_POST['text']);
$int=$i+1;
$query = "UPDATE course SET cname = '".$newname."' WHERE cid = '".$int."'";
mysql_query($query) or die(mysql_error());
include "includes/close.php";
}
}
更新:Thanx Marc B,添加or die(mysql_error());
向我展示了我的代码中的错误,一切正常,我又回到正轨。
答案 0 :(得分:3)
您的查询调用没有错误处理:
mysql_query($query) or die(mysql_error());
^^^^^^^^^^^^^^^^^^^^^^
会告诉您查询执行是否有任何问题。在元级别上,您对SQL injection attacks持开放态度,因此在进一步使用代码之前,最好先阅读并解决问题。
答案 1 :(得分:2)
$query = "UPDATE course SET cname = '".$newname."' WHERE cid = '".$int."'";
是cID整数?在update语句中,我看起来像一个字符串,尝试回显每个查询并通过直接在db中执行它来检查有效性
答案 2 :(得分:1)
你在哪里连接到数据库??
使用mysql_connect(string hostname, string username, string password');
连接到数据库,然后在使用mysql_select_db
选择数据库后执行查询。
答案 3 :(得分:1)
首先,您应该删除;
$name="edit".$i;;
然后,你如何发布价值观?我在您的代码中看不到<form>
属性,因此无法发布。
此外,一切都在for循环中。永远不会设置$newname=($_POST['text']);
。
答案 4 :(得分:1)
也许不是这样:
if (isset($_POST[$name2]))
试试这个:
if ($name2!="")