1.原本我想把那个框体加上颜色,目前还没弄明白,不过想到了把整个页面加上颜色,并把整个窗体放在中间
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<body bgcolor="#E8FFE8" text="#000000" topmargin="0">
<div align=“center”>
2.原本不知道如何在打印出来的数据库表后面加按钮,按钮后面加链接,一个框体跳转两个不同的页面,跳转页面如何接收。
1)直接在循环后面加上一个按钮就ok
for($i = 0; $i < count($rows); $i++){
echo "<td> ".$rows[$i]."</td>";
}
echo"<td><button type='submit' >modify</button></td>”;
2)用formaction可以直接在按钮后面加函数
<button type='submit' formaction=‘edit.php>modify</button>;
3)利用<form>标签属性 和formaction 可以实现一个框体跳转不同的页面
<form action=“edit.php”, method=“post”>
<button type='submit' formaction=‘edit.php?id=$rows[0]’>modify</button>;
<button type='submit' formaction=‘delete.php?id=$rows[0]’>delete</button>;
4)在设计数据库的时候,每个表都应该有一个主键,例如主键是id,它是唯一的,用来控制不同表之间的关系,还要明确在那个数据对应的是主键,利用主键来实现具体数据的操作。
3.时间函数的实现
$message_time = date('Y-m-d H:i:s’,time());可以显示在保存留言的时候的时间,打印出来发现只有日期,并没有具体时间,后来发现是数据库设置的date字段的类型选择的是date,而不是date time,修改完数据类型之后,发现时间和现在的时间存在时差,通过date_default_timezone_set(‘Asia/Chongqing’);实现当前地区的时间。
4.修改数据库中的数据
开始的时候我想到是利用表来打印出来,当我把代码写出来之后,运行的时候发现还是无法修改,但是后面我想到了,是无法编辑的。
然后我又想的是利用<form>把数据在页面中显示出来,然后在到解决的页面实现修改。
<?php
date_default_timezone_set('Asia/Chongqing');
$id=$_GET["id"];
$con = mysql_connect("127.0.0.1","root","");
mysql_select_db("my_lyb");
$sql = "select * from ly where id='$id'";
$result = mysql_query($sql,$con);
while($row=mysql_fetch_array($result)) {
?>
<form>
<fieldset align="center">
<input type="hidden" name="id" value="<?=$row[id]?>">
<p><input type="text" name="Username" value="<?=$row[Username]?>"></p>
<p><input type="text" name="Title" value="<?=$row[Title]?>"></p>
<p><input type="text" name="Content" value="<?=$row[Content]?>"></p>
<p><input type="submit" value="submit" value="Edit" formaction="/function/modify.php?id='$id'"></p>
</fieldset>
</form>
<?php } ?>
<?php
date_default_timezone_set('Asia/Chongqing');
$id=$_POST["id"];
$Username=$_POST["Username"];
$Title=$_POST["Title"];
$Content=$_POST["Content"];
$con = mysql_connect("127.0.0.1","root","");
mysql_select_db("my_lyb");
$message_time = date('Y-m-d H:i:s',time());
$sql="update ly set Username='$Username',Title='$Title',Content='$Content',Date='$message_time' where id='$id";
mysql_query($sql,$con);
if(mysql_query($sql)){
echo "<a href=‘Message Board.php'>Return Message Board</a>";
}else{
echo "<a href='Message Board.php'>Return Message Board</a>";
}
?>
调代码首先需要把问题打印出来var_dump();
用来打印代码,看问题出现在哪。打印变量,我发现打印出来的$id为0,$Username为NUll说明没有参数传递过来,也就是说在<form>框体内的id没获取到。之后把 formation 设置为url和参数的拼接formaction=“/function/update/modify.php?id=<?php echo $id; ?>” 之后能跳转到页面,跳转之后还是提示修改错误,把$id和变量是能打印出来的,打印函数提示错误var_dump($result) ;打印出来为false,在把具体的错误打印出来 if (!$result) {die('Invalid query: ' . mysql_error());} 打印结果为:Invalid query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''24' at line 1,提示语法错误。就找到错误的原因了,是函数没有执行。最后发现自己的sql语句写错了。
小结:通过这个程序总结了一些经验,首先要发现自己的代码是不是写错了,其次如果代码没写错,但是没能执行,就要考虑哪个地方出错了,一点一点的排查错误,把变量打印出来,发现问题出现在哪,然后就把具体的问题打印粗来,进行修改,这就是调试代码最基本的步骤。