2014-02-16 3 views
2

모든 사용자를 삭제 한 후 모든 사용자의 사용자 ID를 다시 작성하는 기능을 사용하려고했습니다. 예제에서SQL 결과를 PHP 배열에 바인드

테스트 테이블 :

ID | 텍스트
1 | aaa
2 | bbb
3 | ccc
4 | ddd
6 | fff
7 | ggg
8 | hhh
9 | iii
10 | jjj

레코드를 삭제했습니다 : 5 | |

ID : EEE

나는

고정 TABLE 모든 사용자 ID를 수정하고 또한 MySQL을위한 자동 증가를 해결하려면 텍스트
1 | aaa
2 | bbb
3 | ccc
4 | ddd
5 | fff
6 | ggg
7 | hhh
8 | iii
9 | , 무슨 소리 ... 어떤 제안을 AUTO_INCREMENT 작품을 고정하지만 모든 사용자 ID를 고정 - JJJ

function rebuild_user_id($mysqli) { 

$row_count = get_dbt_rows_count('test', $mysqli); 
$result = $mysqli->query("SELECT id FROM test ORDER BY id ASC"); 

    for ($i = 1; $i <= $row_count; $i++) { 

    //Fetch all rows in result and store them in an array $rows 
    $rows = array(); 
    while($row = $result->fetch_row()) { 
     $rows[] = $row; 
    } 

    $currentid = $rows[$i]; 
    $mysqli->query("UPDATE test SET id = $i WHERE id = $currentid"); 
    } 


// set fixed auto_increment 
$ai_value = $row_count + 1; 
$mysqli->query("ALTER TABLE `test` AUTO_INCREMENT=$ai_value"); 

} 

나는 같은 결과에 모든 시간을 시도했습니다?

+2

HTTP : //stackoverflow.com/questions/2089492/how-to-reindex-mysql-table 도움이 되길 바랍니다. – hek2mgl

+1

왜이 작업을 수행하려고합니까? 일반적으로 말하자면, 매우 나쁜 아이디어 *. – eggyal

+0

감사합니다 hek2mgl, 그것은 작동합니다 :) – VANKO

답변

0

eggyal이 나쁜 관행으로 나타납니다 정확하지만 hek2mgl 올바른 대답을 얻었다과 대답으로이 질문이 표시되어야한다 :이 도움이

이 관련되어 how-to-reindex-mysql-table 희망 - hek2mgl

이 관련되어
관련 문제