[請益] UPDATE 使用上的問題 已補上原碼

看板PHP作者 (大順)時間16年前 (2008/01/30 12:54), 編輯推噓4(408)
留言12則, 5人參與, 最新討論串1/1
----構想----- 用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

01/30 13:07, , 1F
你的Table structure有沒有設錯?
01/30 13:07, 1F

01/30 13:20, , 2F
如果不是什麼機密程式,直接貼出來比較快吧...
01/30 13:20, 2F

01/30 13:22, , 3F
應該沒有錯才是,我就只有單一資料表而已
01/30 13:22, 3F
※ 編輯: idcomputer 來自: 140.136.128.7 (01/30 13:27)

01/30 13:39, , 4F
直覺像是total資料型態問題 有超過欄位上限嗎?
01/30 13:39, 4F

01/30 13:49, , 5F
TOTAL是varchar(20),我想成績頂多應該只有三位數
01/30 13:49, 5F

01/30 13:49, , 6F
應該不會是這個的問題,苦惱好久@@
01/30 13:49, 6F

01/30 14:12, , 7F
試試看把 欄位用 `` 包起來,另外把 sql echo 出來看..
01/30 14:12, 7F

01/30 14:23, , 8F
您指的欄位是?!
01/30 14:23, 8F

01/30 15:42, , 9F
我的意思是 update `table` set `a` = 'b' , `c` = 'e'
01/30 15:42, 9F

01/30 15:43, , 10F
類似這樣....
01/30 15:43, 10F

01/30 16:28, , 11F
where no='$no' 這句的 no 應該會有問題(保留字)
01/30 16:28, 11F

01/30 16:37, , 12F
發現問題了!!!!原來是all的問題改成a就沒問題了@@
01/30 16:37, 12F
文章代碼(AID): #17e0CHo8 (PHP)