大家帮我看看这段代码错在哪儿?为什么没写入数据库,急!!!!!

xxzh 2005-04-29 03:58:09
代码如下:

<?
session_start();
session_register();
if ( function_exists('ini_get') ) {
$onoff = ini_get('register_globals');
} else {
$onoff = get_cfg_var('register_globals');
}
if ($onoff != 1) {
@extract($HTTP_SERVER_VARS, EXTR_SKIP);
@extract($HTTP_COOKIE_VARS, EXTR_SKIP);
@extract($HTTP_POST_FILES, EXTR_SKIP);
@extract($HTTP_POST_VARS, EXTR_SKIP);
@extract($HTTP_GET_VARS, EXTR_SKIP);
@extract($HTTP_ENV_VARS, EXTR_SKIP);
}


function err_output($errstr = "未知错误!")
{
echo "<p align = center><font color = red size=4>
<b>$errstr<br></b>请点击此处
<a href = javascript:history.go(-1);>返回</a>
</p>";
exit();
}

$db = mysql_connect("localhost")
or err_output("无法连接数据库!");
mysql_select_db("bbcd",$db)
or err_output("无法选择数据库!");
?>
<html>
<head>
<title>无标题文档</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="../../css/style.css" type="text/css">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<center>
<form method="post" action="<?php echo $PATH_INFO?>">
<?
global $submit, $delete, $myrrow1, $change, $sql;

if ($submit) {
// 如果没有ID,则我们是在增加记录,否则我们是在修改记录

if ($id) {
$sql = "UPDATE dcl_jyitem SET JY_RefVal='$JY_RefVal',JY_Result='$JY_Result',JY_Checker='$JY_Checker' WHERE id=$id";
}
// 向数据库发出SQL命令
$result = mysql_query($sql);
echo "记录修改成功!<p>";
}
if ($id) {
// 我们是在编辑修改状态,因些选择一条记录
$sql = "select * from dcl_mainbase join dcl_jyitem where AA_No = JY_No and id=".$id;
$result = mysql_query($sql);
$myrow = mysql_fetch_array($result);
$id = $myrow["id"];
$JY_RefVal = $myrow["JY_RefVal"];
$JY_Result = $myrow["JY_Result"];
$JY_Checker = $myrow["JY_Checker"];
// 显示id,供用户编辑修改
?>
<?php
}
?>
<input type=hidden name="id" value="<?php echo $myrow["id"] ?>">
诊断参考值:<input type="Text" name="JY_RefVal" value="<?php echo
$myrow['JY_RefVal'] ?>"><br>
检验结果:<input type="Text" name="JY_Result" value="<?php echo
$myrow['JY_Result'] ?>"><br>
检验者:<input type="Text" name="JY_Checker" value="<?php echo
$myrow['JY_Checker'] ?>"><br>
<br><br>
<input type="Submit" name="submit" value="修改信息">
<? echo "<font size=2>请点击此处<a href=javascript:history.go(-1);>返回</a></font>";?>
</form>


</center>
</body>
</html>




我点击修改信息后,数据库里的内容没有被修改,我不知道错在哪儿了?请大家帮我看看,谢谢!
...全文
74 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
xxzh 2005-04-30
上面代码的页名:mainlist1.php,
下面是前一个界面,页名:chxjg1.php

<META HTTP-EQUIV="Pragma" CONTENT="no_cache">
<link rel="stylesheet" href="../../css/style.css" type="text/css">
<?
$db = mysql_connect("localhost")
or err_output("无法连接数据库!");
mysql_select_db("bbcd",$db)
or err_output("无法选择数据库!");
$result=mysql_query("select * from dcl_mainbase join dcl_jyitem where AA_No = JY_No and AA_ItemCode = IT_Code and AA_Client = '$name' and AA_Name='$hzname'");
echo "共有".mysql_num_rows($result)."条";
echo "<center>";
echo "<table border='1' cellpadding='6' width='700' bgcolor='#EAEAEA' class='zw'>";
echo "<tr><td nowrap>项目名称</td>";
echo "<td nowrap>客户送检人</td>";
echo "<td nowrap>收取时间</td>";
echo "<td nowrap>报告送达日期</td>";
echo "<td nowrap>标本收取凭证号</td>";
echo "<td nowrap>姓名</td>";
echo "<td nowrap>性别</td>";
echo "<td nowrap>检验结果</td>";
echo "<td nowrap>参考值</td>";
echo "<td nowrap>检验结果备注</td>";
echo "<td nowrap>详细报告</td>";
echo "<td nowrap>--</td></tr>";

while($arr=mysql_fetch_array($result))
{
//循环显示记录
echo "<tr><td nowrap>"."<a href='mainlist.php?id=".$arr["id"]."'>".$arr["AA_ItemName"]."</a></td>";
echo "<td nowrap>".$arr["AA_Clienter"]."</td>";
echo "<td nowrap>".$arr["AA_GetDate"]."</td>";
echo "<td nowrap>".$arr["AA_RepArrDate"]."</td>";
echo "<td nowrap>".$arr["AA_GetNO"]."</td>";
echo "<td nowrap>"."<a href='mainlist.php?id=".$arr["id"]."'>".$arr["AA_Name"]."</a></td>";
echo "<td nowrap>".$arr["AA_Sex"]."</td>";
echo "<td nowrap>".$arr["JY_Result"]."</td>";
echo "<td nowrap>".$arr["JY_RefVal"]."</td>";
echo "<td nowrap>".$arr["JY_ConClu"]."</td>";
echo "<td nowrap>".$arr["CI_YS"]."</td>";
echo "<td nowrap>"."<a href='mainlist1.php?id=".$arr["id"]."'>"."修改"."</a></td>";
}
echo "</table><br>";
echo "</center>";
?>
<title>标本检验报告</title>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center">
<form name="form1" method="post" action="chaxun.php?name=<?=$name?>">
<input type="submit" name="back" value="返 回">
</form>
</td>
</tr>
</table>

$AA_Name值是在第一个表里(mainbase表)已经存在了值的
回复
helloyou0 2005-04-30
没看到你给$AA_Name赋值。前面应该有$AA_Name=$myrow['AA_Name']

如果你能把两个表里的记录贴点出来比较好,尤其是这个id=1的

------------------------------
显示出来的是:UPDATE dcl_jyitem SET JY_RefVal='阴性',JY_Result='阴性',JY_Checker='test' WHERE and id=000001记录修改成功!
---------------------------
你上面这个是错的,不过可能是你抄错了,少了AA_No = JY_No


此外,你这个页面的前一个页面,就是用户界面,最后也贴一下
回复
xxzh 2005-04-30
显示出来的是:UPDATE dcl_jyitem SET JY_RefVal='阴性',JY_Result='阴性',JY_Checker='test' WHERE and id=000001记录修改成功!

我知道问题在哪儿了,但不会解决,请大家帮我

我从后台数据库调出两个表的部分字段:sql语句:
$sql = "select * from dcl_mainbase join dcl_jyitem where AA_No = JY_No and id=".$id;

语句中的id字段是属于dcl_mainbase表,在dcl_jyitem没有id字段,两个表的连接是AA_No = JY_No相同,dcl_mainbase表放的是每个人的基本信息,dcl_jyitem表放的是第一个表里每个人检查项目的结果值,有的人的结果值已经有了,有的人没有,我就要调出来填写进去,也就是说,第一个表的每个人的基本信息已经存在了,并且不变;只改变的只是第二个表(dcl_jyitem),我只要把第二表里缺的三个字段值写进去就可以了。

现在发现:$sql = "UPDATE dcl_jyitem SET JY_RefVal='".$JY_RefVal."',JY_Result='".$JY_Result."',JY_Checker='".$JY_Checker."' WHERE and id=$id";}
这个语句没有写到和第一表相对应的记录里,不知道写到哪儿去了,我在输出:
echo "$sql";
$result = mysql_query($sql);
echo "记录修改成功!<p>";
echo "$AA_Name"; //该字段是属于第一个表的dcl_mainbase里
echo $JY_RefVal;
echo $JY_Checker;
echo $JY_Result;

与这个检查结果值相对应的人名去没有显示出来,就是说他找不到这个人是谁,本来这个结果值是小王的,但没有显示小王的名字?

这个问题怎么解决?
回复
helloyou0 2005-04-30
我插入echo显示sql语句,没有任何提示,也没有报错,倒底是哪儿出问题了?我想实现在线修改记录的功能不,大家快帮我看看
---------------------------
?怎么叫没有任何提示?显示出来的sql是什么样子?
回复
xxzh 2005-04-30
按楼上的改了后,还是不行,大家再给我看看吧,急死我了
回复
xxzh 2005-04-30
$sql = "UPDATE dcl_jyitem SET JY_RefVal='$JY_RefVal',JY_Result='$JY_Result',JY_Checker='$JY_Checker' WHERE id=$id";

如果我取掉上面语句中: WHERE id=$id 条件,就可以写入到数据库里了,可能是因为表dcl_jyitem中没有id字段,那我怎么才能保证值写到相应人的结果里呢?这个where条件应该怎么加????
回复
keaizhong 2005-04-29
如果ID没问题那就是这个语句的问题了。
请用下面的试试。

你的代码太乱,好好整理一下吧。

$sql = "UPDATE dcl_jyitem SET JY_RefVal='".$JY_RefVal."',JY_Result='".$JY_Result."',JY_Checker='".$JY_Checker."' WHERE id=$id";
回复
xxzh 2005-04-29
echo $JY_RefVal;
echo $JY_Checker;
echo $JY_Result;
我输出这三个值,得到的都是我修改最新的值 ,为什么我在数据里查询时,没有搜索到该记录呢?
回复
xxzh 2005-04-29
测试有ID输出
回复
keaizhong 2005-04-29
没有ID
检查ID是否存在。
回复
xxzh 2005-04-29
我插入echo显示sql语句,没有任何提示,也没有报错,倒底是哪儿出问题了?我想实现在线修改记录的功能不,大家快帮我看看
回复
helloyou0 2005-04-29
$result = mysql_query($sql);
语句之前可以插入echo显示sql语句是否正确。
这句之后需要检查执行是否出错,用mysql_error获得出错信息
回复
相关推荐
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2005-04-29 03:58
社区公告
暂无公告