作者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