作者idcomputer (大顺)
看板PHP
标题[请益] UPDATE 使用上的问题
时间Wed Jan 30 12:54:40 2008
----构想-----
用PHP写一个线上填写成绩的系统
登入之後请大家填写三个科目
送出表单的时候先至CHK.php档案作身份的确认
完成之後在将资料UPDATE上去资料库
----实际----
先用POST抓到各科资料及学生资料
$学号 = $_POST['学号'];
$第1科 = $_POST['第1科 '];
$第2科 = $_POST['第2科'];
$第3科 = $_POST['第3科'];
再设一个变数TOTAL = $第1科+$第2科+$第3科 (代表总分)
$TOTAL=$第1科+$第2科+$第3科;
接着使用UPDATE
SQL=
UPDATE 资料库 SET
第一科='$第一科' ,
第二颗='$第二颗' ,
第三颗='$第三颗' ,
总分='$TOTAL'
where 学号='$学号'
接着送出SQL
但奇怪的是没有UPDATE 总分 的情况下是可以的
连 总分 一起UPDATE的时候却无法更新资料!!!
-----以下是原码------已测试过$total是抓的到的,只不过更新不了
<?php
$no = $_POST['no']; //学号
$m = $_POST['m']; //第一科
$s = $_POST['s']; //第二科
$c = $_POST['c']; //第三科
$d = $_POST['d']; //日期
$total =$m+$s+$c; //总和
$sqlstr = "SELECT no FROM pdata WHERE no='$no'";
$res = mysql_query($sqlstr);
$totalRows = mysql_num_rows($res);
$tt=$totalRows;
if ($tt == 0) //检查查询结果是否有资料
{
echo "<script>";
echo "alert(\"未登入!!\");";
echo "</script>";
echo "<body onload = \"history.back();\">";
}
else
{
$sql = "UPDATE personaldata
SET m='$m' ,s='$s' ,c='$c' , d='$d', total='$total'
where no='$no'";
mysql_query($sql);
echo "<script>";
echo "alert(\"成绩已上传\");";
echo "location.href = \"index.php\";";
echo "</script>";
}
?>
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.136.128.7
1F:推 ybite:你的Table structure有没有设错? 01/30 13:07
2F:推 kylekai:如果不是什麽机密程式,直接贴出来比较快吧... 01/30 13:20
3F:→ idcomputer:应该没有错才是,我就只有单一资料表而已 01/30 13:22
※ 编辑: idcomputer 来自: 140.136.128.7 (01/30 13:27)
4F:推 maplenote:直觉像是total资料型态问题 有超过栏位上限吗? 01/30 13:39
5F:→ idcomputer:TOTAL是varchar(20),我想成绩顶多应该只有三位数 01/30 13:49
6F:→ idcomputer:应该不会是这个的问题,苦恼好久@@ 01/30 13:49
7F:→ kylekai:试试看把 栏位用 `` 包起来,另外把 sql echo 出来看.. 01/30 14:12
8F:→ idcomputer:您指的栏位是?! 01/30 14:23
9F:→ kylekai:我的意思是 update `table` set `a` = 'b' , `c` = 'e' 01/30 15:42
10F:→ kylekai:类似这样.... 01/30 15:43
11F:推 wayway2004:where no='$no' 这句的 no 应该会有问题(保留字) 01/30 16:28
12F:→ idcomputer:发现问题了!!!!原来是all的问题改成a就没问题了@@ 01/30 16:37