Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用MySQLi查看、编辑、添加和删除记录_Php_Html_Mysql_Mysqli - Fatal编程技术网

Php 使用MySQLi查看、编辑、添加和删除记录

Php 使用MySQLi查看、编辑、添加和删除记录,php,html,mysql,mysqli,Php,Html,Mysql,Mysqli,我按照这个[Tutorial][1]从我的数据库中创建、添加、编辑和删除学校班级信息记录 我可以成功删除记录,但无法添加新记录或编辑现有记录 当我选择编辑一行时,url会更新,例如,records.php?cid=2,但是records.php会以标题“New Class”打开,其中没有填写任何现有记录信息 编辑 我已经为bind_参数更新了代码(删除了“?”语法错误)和类型变量的数量 新记录正在添加,但仍不确定如何通过$cid检查 谢谢你的帮助,将来一定会考虑使用LaaField.P/> <

我按照这个[Tutorial][1]从我的数据库中创建、添加、编辑和删除学校班级信息记录

我可以成功删除记录,但无法添加新记录或编辑现有记录

当我选择编辑一行时,url会更新,例如,
records.php?cid=2
,但是records.php会以标题“New Class”打开,其中没有填写任何现有记录信息

编辑

我已经为bind_参数更新了代码(删除了“?”语法错误)和类型变量的数量

新记录正在添加,但仍不确定如何通过$cid检查


谢谢你的帮助,将来一定会考虑使用LaaField.P/> < P>你在这行中的错误

    if ($stmt = $dbcon->prepare("UPDATE class SET ModuleCode = ?, Type = ?, Room = ?, StartTime = ?, EndTime = ?, DayOfWeek = ?, StartDate = ?, EndDate = ?
    WHERE ClassID=?"))
    {
    $stmt->bind_param("ssi",$cid, $modulecode, $type, $type, $room, $starttime, $endtime, $dow, $startdate, $enddate);
    $stmt->execute();
    }
类型变量的数量与变量的数量不匹配,也不需要加撇号?标记

    if ($stmt = $dbcon->prepare("UPDATE class SET ModuleCode = ?, Type = ?, Room = ?, StartTime = ?, EndTime = ?, DayOfWeek = ?, StartDate = ?, EndDate = ?
    WHERE ClassID=?"))
    {
    $stmt->bind_param("ssissssss",$cid, $modulecode,  $type, $room, $starttime, $endtime, $dow, $startdate, $enddate);
    $stmt->execute();
    }
还有下面的代码

    if ($stmt = $dbcon->prepare("INSERT INTO class(ModuleCode,Type,Room,StartTime,EndTime,DayOfWeek,StartDate,EndDate)VALUES
                                          (?,?,?,?,?,?,?,?)"))
    {
    $stmt->bind_param("ss", $modulecode, $type, $room, $starttime, $endtime, $dow, $startdate, $enddate);
    $stmt->execute();
    $stmt->close();
    }
应该是

    if ($stmt = $dbcon->prepare("INSERT INTO class(ModuleCode,Type,Room,StartTime,EndTime,DayOfWeek,StartDate,EndDate)VALUES
                                          (?,?,?,?,?,?,?,?)"))
    {
    $stmt->bind_param("ssssssss", $modulecode, $type, $room, $starttime, $endtime, $dow, $startdate, $enddate);
    $stmt->execute();
    $stmt->close();
    }

我在代码中注意到的一点是,您检查了一个尚未声明的变量,即
$cid
,请尝试首先获取该变量,然后检查它:

$cid = $_GET['cid'];
然后检查您可以:

if($_SERVER['REQUEST_METHOD'] == 'GET' && isset($_GET['cid'] && is_numeric($_GET['cid']))

尝试在编辑页面顶部添加此代码,以便在执行任何其他操作之前掌握您的
id
,这样,如果出现问题,您可以将用户重定向到另一个页面。

这是因为您对
$cid
的检查从未通过。我强烈建议您避免使用类似的教程,而是找到适合您的风格和需要的。从头开始构建您自己的站点是一项困难的工作,您将花费大量时间痛苦地重新完成框架在几分钟内可以完成的工作。这是一个非常适合初学者的好例子,文档中包含的介绍比大多数教程的质量都要高。如果有同样的时间,你会更有效率。@tadman我认为框架,尤其是Laravel,非常好,但是了解一下框架对我来说做了什么怎么样?努力学习核心语言是不值得的?
(“?,“?”,“?”,“?”,“?”,“?”,“?”,“?”,“?”)
这是另一个语法错误。你从哪儿弄来的?我可以这么说,不是从教程中。你的代码包含太多错误。好吧,如果你看不到你的生命(OP),要么你留下了问题,要么你不知道如何处理这些评论或下面的答案。我已经向您展示了大多数错误的位置,我没有调试您的整个代码。下面是你的答案。如果它解决了问题,就接受它。如果没有,告诉他们。祝你好运。在页面顶部检查
$cid
并在末尾声明是否正确?谢谢@vSugumar的帮助。我已经应用了您建议的更改,并在页面顶部声明$cid(上面更新的代码)。当我选择编辑行时,会传递并显示$cid,但不会传递其他字段。当我输入有效数据并点击submit时,在“if(is_numeric($_POST['cid'])”行中出现错误“Undefined index:cid”