2012-10-20 2 views
4

두 개의 열을 자동으로 증가시킬 수 없으므로 Query가 테이블의 마지막 행을 가져오고, 새 행을 삽입하는 열의 +1 값을 가져옵니다. 열 '아이디',SQL 쿼리는 마지막 행에서 1 씩 증가합니까?

id player_id player_name 
1  15   name1 
2  16   name2 
3  17   name3 

내가 형태에서 플레이어를 만들 관리자 패널을 만들려고 노력 해요 : 예를 들어

나는 players

라는 이름의 테이블이 같은 abit를 찾고 있습니다 자동 증가하지만 player_id도 증가해야하지만 id와 player_id는 서로 같지 않습니다.

과 유사한 쿼리

는 삽입 할 때 다음 쿼리는 가능한 다음 player_id를 할당합니다

$sql="SELECT * FROM `players` ORDER BY id DESC LIMIT 1"; 
    $result =mysql_query($sql); 
    $data=mysql_fetch_assoc($result); 
    $playerid=$data['player_id']+1; 

mysql_query("Insert into `players` (`player_id`,`player_name`) VALUES ('".$playerid."','name4')"); 
+1

오 내가 당신의 이름 아래 오렌지 것은 참조 : 데이터베이스 설계가 표준화되지 D –

+0

을 - 왜 당신은'id'와'player_id' 모두 필요합니까 'players' 테이블에서? – willoller

+0

정렬, didnt 난 내 대답 – Koala

답변

4

이 코드를보십시오 :

$sql="SELECT player_id FROM `players` ORDER BY id DESC LIMIT 1"; 
    $result =mysql_query($sql); 
    while ($data=mysql_fetch_assoc($result)){ 
     $playerid=$data['player_id']+1; 
     } 
mysql_query("Insert into `players` (`player_id`,`player_name`) VALUES ('".$playerid."','name4')"); 
0

시도 (그래서 당신이 조금 더 이해할 수있는이 만든) .

INSERT INTO `players` (`player_id`, `player_name`) 
SELECT MAX(`player_id`)+1, 'name4' 
FROM `players`; 
+0

답장을 보내 주셔서 감사합니다. 플레이어에게 삽입하지만이 오류와 함께 player_id 값을 제공합니다 : 경고 : mysql_fetch_assoc()은 매개 변수 1이 리소스가 될 것으로 예상합니다 – Koala

+0

@ user1626410 테이블에서 $ sql 쿼리를 실행 했습니까? 무슨 가치가 있는지보십시오 ?? – Sibu

2

이 방법을

$sql="select top 1 * from `players` order by id desc"; 
$result =mysql_query($sql); 
while ($data=mysql_fetch_assoc($result)){ 
    $playerid=$data['player_id']; 
    Insert into `players` (`player_id`,`player_name`) VALUE ('$playerid' + '1', 'name4'); 

}