Yahoo奇摩知識+ 將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+ 網站將會轉為唯讀模式。其他 Yahoo奇摩產品與服務或您的 Yahoo奇摩帳號都不會受影響。如需關於 Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。
php mysql語法
我現在有三個欄位分別是 17日 18日 19日 都有資料 假設明天是17號了 那我17日這個欄位就要刪掉連同資料 然後多增加一個欄位叫20日 在資料庫裡變成 18日 19日 20日 請問要如何做這部份呢?
感謝
圖片參考:http://l.yimg.com/f/i/tw/ugc/rte/smiley_36.gif
刪資料就按照黃金小狐狸的方式好了 ~我把問題改成 如何下達mysql指令改變欄位名稱...例如 17 18 19 ~~17號的東西刪了後 把名稱改為20 這部份要如何做呢 我的書沒講到這部份 感謝小狐狸及 fayi大大
To: jangchyn 其實我一開始問題從刪掉資料表的欄位連同資料 然後增加一欄位叫20日 這是最初 補充內容部份 刪除資料按照黃金小狐狸的來做 然後欄位問題改為"把欄位名稱改掉" 這就是事情原委......
fayi大大的也有刪除資料 沒看清楚 他的方法也行 ~~現在我總算成功的新增欄位及刪除欄位了 刪除欄位就連同資料一起刪了 道理一樣 ~~新增欄位及刪除欄位利用日期判斷也能做的出來了 事情是解決了..
To: 魚與熊 從沒想過耶 我不懂 "把資料正規化" 這意思
3 個解答
- SamLv 61 0 年前最佳解答
最簡單的做法。
因為你是按照日期做的。所以sn序號的排序一定是由小到大。
$sql="SELECT * FROM a ORDER BY sn ASC";
$result=mysql_fetch_array(mysql_query($sql));
$sql="DELETE FROM a WHERE sn='".$result["sn"]."'";
mysql_query($sql);
這樣就可以刪除第一天的資料了。
至於新增就沒差吧,按照一般的新增程序就行了。
原則上………只要一個資料表就解決了。
2009-08-26 11:08:07 補充:
本來是打算用意見的。
但我程式碼有點長了點。
所以改用回答。而原本有BUG的地方也稍微修正了。
因為你的程式很容易寫出一個很多人會「LOSE」掉的BUG。
就是:萬一今天是從31跳到1號,或是30跳到1號,甚至29、28跳到1號的情形少了判斷式就會出錯。
而且到了2號、3號還是會遇到一樣的情形。所以得使用日期函式來修正這個很容易被忽略的BUG,程式如下:
(註:我未加寫資料料呼叫的部份,這部份您應該知道怎麼做的)
$date=date("d");
$sql="SELECT * FROM test_table";
$result=mysql_query($sql);
$fields=mysql_num_fields($result);
for ($i=0;$i<$fields;$i++){
$field_name[$i]=mysql_field_name($result,$i);
}
foreach($field_name as $show_name){
echo $show_name."<br>";
if ($show_name==$date) $date_true="日期已存在";
}
echo $date_true;
if (empty($date_true)){
$sql="ALTER TABLE `test_table` ADD `$date` VARCHAR(11) NOT NULL";
mysql_query($sql);
$drop_date=$date("d",time()-259200);
$sql="ALTER TABLE `test_table` DROP `$drop_date`";
mysql_query($sql);
}
2009-08-26 11:19:23 補充:
不過實際應用層面並不建議這種做法。
如果你只是小量的資料MAYBE還可以。
遇到大量的資料可能就很麻煩。
就資料庫使用來說,儘可能不要去動到欄位。
而是去控制資料本身的新增刪除會比較好。
- CYLv 51 0 年前
fayi and 黃金小狐狸 討論的都是如何找到並刪除一筆資料(a row) 可是怎麼問題讀來像是要處理一欄資料(a column)?
Chris, can you clarify? Thanks.