[请益] 执行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