mysql_* 함수를 사용하여 MySQL 결과 세트를 여러 번 루프하려면 어떻게 해야 합니까?
어떤 이유로든 MySQL 결과 세트를 두 번 확인해야 합니다.방법이 있을까요?
쿼리를 두 번 실행하고 싶지 않으며 행을 저장하고 나중에 재사용하도록 스크립트를 다시 작성할 필요도 없습니다.
다음과 같이 할 수 있습니다.
$result = mysql_query(/* Your query */);
while($row = mysql_fetch_assoc($result)){
// do whatever here...
}
// set the pointer back to the beginning
mysql_data_seek($result, 0);
while($row = mysql_fetch_assoc($result)){
// do whatever here...
}
하지만, 이건 올바른 방법이 아닌 것 같습니다.첫 번째 루프 내에서 처리를 하면 어떨까요?
mysqli의 경우 다음 작업을 수행해야 합니다.
$result= $con->query($sql); // $con is the connection object
$result->data_seek(0);
mysql_data_seek()이 필요한 기능을 수행하는지 확인합니다.
mysql_data_seek()는 지정된 결과 식별자와 연관된 MySQL 결과의 내부 행 포인터를 지정된 행 번호를 가리키도록 이동합니다.mysql_fetch_assoc()와 같은 MySQL 가져오기 함수에 대한 다음 호출은 해당 행을 반환합니다.
row_number는 0부터 시작합니다.row_number는 0 ~mysql_num_rows() - 1 범위의 값이어야 합니다. 그러나 결과 집합이 비어 있으면(seek_num_rows() == 0), 0에 대한 검색이 실패하고 E_WARNING과 함께 mysql_data_seek()가 FALSE를 반환합니다.
데이터 검색 대신 값을 배열에 저장하는 방법이 있습니다.
$arrayVals = array();
$result = mysql_query(/* Your query */);
while($row = mysql_fetch_assoc($result)){
$arrayVals[] = $row;
}
// Now loop over the array twice instead
$len = count($arrayVals);
for($x = 0; $x < $len; $x++) {
$row = $arrayVals[$x];
// Do something here
}
$len = count($arrayVals);
for($x = 0; $x < $len; $x++) {
$row = $arrayVals[$x];
// Do something else here
}
제가 이걸 해보진 않았지만, 첫 번째 반복 후에 시도해 보셨나요?
mysql_data_seek($queryresult,0);
첫 번째 레코드에 갈 수 있을까?
mysql_data_seek을 사용하여 내부 포인터를 데이터 세트의 선두로 이동할 수 있습니다.그러면 다시 한 번 반복하면 돼요.
읽은 행의 수를 항상 세고 다음과 같은 작업을 수행할 수 있습니다.
if (rownumber == mysql_num_rows($result)) { mysql_data_seek($result, 0); }
왜 그래야 하는지는 모르겠지만, 여기 있네요.
언급URL : https://stackoverflow.com/questions/6439230/how-can-i-loop-through-a-mysql-result-set-more-than-once-using-the-mysql-funct
'programing' 카테고리의 다른 글
지정한 DSN에 드라이버와 응용 프로그램 간의 아키텍처가 일치하지 않습니다.자바 (0) | 2022.10.26 |
---|---|
Mysql/Maria 고유 키 표현 (0) | 2022.10.26 |
jQuery를 사용하여 드롭다운 목록(선택 상자)에서 선택한 텍스트를 가져옵니다. (0) | 2022.10.26 |
PHP를 사용하여 임의 16진수 색상 코드 생성 (0) | 2022.10.26 |
django queryset에서 OR 조건을 실행하는 방법 (0) | 2022.10.26 |