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大大

2 個已更新項目:

To: jangchyn 其實我一開始問題從刪掉資料表的欄位連同資料 然後增加一欄位叫20日 這是最初 補充內容部份 刪除資料按照黃金小狐狸的來做 然後欄位問題改為"把欄位名稱改掉" 這就是事情原委......

3 個已更新項目:

fayi大大的也有刪除資料 沒看清楚 他的方法也行 ~~現在我總算成功的新增欄位及刪除欄位了 刪除欄位就連同資料一起刪了 道理一樣 ~~新增欄位及刪除欄位利用日期判斷也能做的出來了 事情是解決了..

4 個已更新項目:

To: 魚與熊 從沒想過耶 我不懂 "把資料正規化" 這意思

3 個解答

評分
  • Sam
    Lv 6
    1 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還可以。

    遇到大量的資料可能就很麻煩。

    就資料庫使用來說,儘可能不要去動到欄位。

    而是去控制資料本身的新增刪除會比較好。

  • 1 0 年前

    你要是不介意的話

    我想請教一下

    你有想過要把資料做一下正規化嗎

    ^^!!!!!

  • CY
    Lv 5
    1 0 年前

    fayi and 黃金小狐狸 討論的都是如何找到並刪除一筆資料(a row) 可是怎麼問題讀來像是要處理一欄資料(a column)?

    Chris, can you clarify? Thanks.

還有問題?馬上發問,尋求解答。