[請益] 執行php讓mysql資料表UPDATE資料從1~300

作者: rls0914 (簡單生活,就足夠。)   2015-10-22 15:10:13
我想要執行php讓資料表no欄位從1依序排到300號,一直無法成功修改,
請問mysql指令是不是無法SELECT和UPDATE同時在php使用,
primary_key欄位已經使用主鍵並且自動排序已經從300多號排到600多號了,
以下為PHP程式碼:
<?
include("_mysql.inc.php");
//收尋資料表
$sql = "SELECT `primary_key`,`no` FROM `_date`";
//執行指令
$result=mysqli_query($conn, $sql);
$i=0;
//依序取出資料
while ($row=mysqli_fetch_array($result)) {
//修改資料
$sql="UPDATE `_date`.`_date`
SET `no` = '$i',
WHERE `_date`.`primary_key` = $row[0]";
mysqli_query($conn, $sql);
$i++;
}
?>
我能怎麼處理資料呢? 或是程式哪裡寫錯了呢?
作者: MOONRAKER (㊣牛鶴鰻毛人)   2015-10-22 15:42:00
自動排序不能update 你若要自己管理排序就不要設auto_increment
作者: sunnyvisit (visit)   2015-10-22 20:19:00
insert into 搭配 select 換張新table? 看你的需求應該是因為pk已經從300多開始 但希望是從1開始所以多一個no的欄位?
作者: rls0914 (簡單生活,就足夠。)   2015-10-22 20:28:00
我300筆資料已經輸入了 換新table 是不是很麻煩?所以想增加一個NO欄位 想自己管理序號
作者: dinos (守護神)   2015-10-22 21:09:00
加上 ORDER BY `primary_key` ASC
作者: xdraculax (首席怪叔叔)   2015-10-23 08:17:00
你的資料庫跟資料表都叫 _date ?看不出那有問題,不然把 sql 輸出貼到 phpmyadmin 執行看看
作者: Dinjang (DD)   2015-10-23 08:23:00
UPDATE 後面 .`_date`刪掉看看或是 WHERE後面的$raw[0]有問題
作者: sadle   2015-10-24 02:01:00
若col1為auto pk,重排後的 col2,col3 欄位值不變, 使用CREATE TABLE table_new LIKE table_old; //建新表不排序用 INSERT table_new (col2,col3) SELECT col2,col3FROM table_old;排序用 INSERT table_new (col2,col3) SELECT col2,col3FROM table_old ORDER BY col1;
作者: xdraculax (首席怪叔叔)   2015-10-24 10:50:00
no是自訂排序,蠻常見的功能,跟流水號兩回事,不需要換表

Links booklink

Contact Us: admin [ a t ] ucptt.com