최근에 (성능을 최적화하기 위해) 1 개의 쿼리에 2 개의 쿼리를 결합했습니다 ... 카운트를 확인하기위한 1 개의 쿼리와 다른 하나의 결과에 대해 카운트는 루프를 진행하기 전에 실제 결과를 보장합니다.MySQL은 while 루프 내에서 1 개의 결과를 표시하지만 실제로는 2 개의 결과가 나타 납니까?
Heres는 PHP 코드 :
<?php
$query = 'SELECT id, title, COUNT(id) FROM submissions ORDER BY sub_time DESC LIMIT 50';
$result = mysql_query($query);
$count = mysql_result($result, 0, 2);
mysql_data_seek($result, 0); //mysql_result resets the internal pointer...
if ($count > 0) {
$i = 0;
while ($output = mysql_fetch_assoc($result)) {
++$i;
//etc..
}
}
?>
문제는 이제 한 결과를 반환입니까? - 실제로 2 결과가 나오면 (PHPMyAdmin을 통해 확인한 결과, 아래 코드 참조 - 아래 참조), COUNT (ID)가 초기 결과 쿼리와 결합되어 문제가 좁혀졌습니다. 그게 그렇게 행동하는 것.
때문에 나는 다음을 수행하는 경우 :
<?php
$query = 'SELECT id, title FROM submissions ORDER BY sub_time DESC LIMIT 50';
$result = mysql_query($query);
$i = 0;
while ($output = mysql_fetch_assoc($result)) {
++$i;
//etc..
}
?>
그것은이 개 결과를 반환 ...
그래서 제 질문은 내가 어떻게이 문제를 해결하지만 난 후 무엇을 달성 할입니까?
동의. 결과 집합에있는 값을 사용하여 결과의 수를 알려주고 결과 집합에 레코드가 없으면 어떻게됩니까? * 이제 두 가지 사례를 처리해야합니다. –