2012-10-15 5 views
1

내 데이터베이스의 특정 테이블에 대한 도움이 필요합니다. I는 정수 열 (ID)를 재정렬하려고하지만 지금 이름이 지정된 아이디의 현재 값은 이전 value.eg의 값을 취하고있다ID 열을 재정렬 한 후 MySQL 오류

경우 : RE 후

------------ 
id Name 
2  Stack 
3  Over 
4  Flow 
------------ 
A link like page.php?id=3 gives a value of OVER which is correct 

(재 odering 전) - 번호 매기기

------------ 
id Name 
1  Stack 
2  Over 
3  Flow 
4  Name 
5  Last 
------------ 

페이지와 같은 링크를 사용할 때? id = 3 나는 여전히 OVER를 얻는데, 이것은 올바르지 않습니다. 또한 새로운 id = 5는 값을 반환하지 않습니다.

어디에서 문제가 될 수 있습니까? 내가 phpMyAdmin을 "SELECT * FROM tap_bios WHERE tap_bios_id = 3에서 시도했을 때

업데이트

나는 이상 대신 흐름의 수.

+0

실행 한 쿼리는 무엇입니까? –

+0

지금까지 보여준 내용은 아닙니다 ... 저는 page.php에 코드를 표시 할 수 있습니까? 특히 관련 쿼리가 실행되는 부분은 무엇입니까? – fvu

+0

@fvu'$ id = "1"; if (isset ($ _ GET [ 'id'])) { $ id = intval ($ _ GET [ 'id']); } else $ id = 1; $ bios = mysql_query ("SELECT * 에서 의'tap_bios' 어디의 'tap_bios_id' = '{$ id}'") 또는 die (mysql_error()); $ row = mysql_fetch_array ($ bios); ' –

답변

1

... 브라우저에 해당 요청을 캐시하지 않았습니까? 캐시를 지우고 쿼리를 다시 실행 해보십시오. 또한 쿼리를 로깅하고 쿼리 브라우저에 복사/붙여 넣기를 시도하십시오. 올바른 것으로 생각되는 쿼리를 사용하는 동안 데이터베이스를 직접 처리 할 때 예기치 않은 결과가 발생하는 경우 데이터베이스 문제이므로 추가 조사가 필요합니다. 그렇지 않으면 시스템의 다른 곳에서 캐싱 문제가 발생할 수 있습니다.

+0

방금 ​​캐시를 지우고 문제가 지속됩니다. –

+0

phpMyAdmin에서 선택 코드를 시도했을 때 비정상적인 결과가 나타났습니다 –

+0

리팩터링 한 경우 데이터베이스에 변경 사항을 커밋하고 트랜잭션을 닫았습니까? 그렇지 않으면 변경 사항을 작성한 도구에서 이러한 변경 사항이 표시 될 수 있지만 트랜잭션이 닫히지 않아 데이터베이스가 변경되지 않습니다. phpMyAdmin이 원래 결과를 보여 주면, 테이블에 사용자가 생각하는 정보가 포함되어 있지 않은 것으로 보입니다. –

관련 문제