2009-08-17 5 views
1

내가 코드를 본 적이 난 다음에 일하고 있어요 mysql_result, 그래서 foreach는 잠시 동등 (mysql_fetch_row() 함수는())상당의 foreach의 첫 번째 루프를 모방()

경우에 그 결과는 하나의 열을 생성하는 것으로 알려져 있지만, 가되는 인상 제공되도록하는 코드는 여전히 "의 foreach"가 많은 행을 순환 시키십시오.

each()를 사용했지만 사용하지 못했습니다.

mysql_fetch_row()를 사용할 수 있지만 DB 전용 함수를 사용할 수 없도록 코드가 DB 독립적이어야한다는 것을 알고 있습니다. 이 경우 foreach()의 첫 번째 반복과 같이 작동하는 each()와 같은 것이 있습니까?

추신 :

foreach($mysql_result as $row) break; 
$site_id = $row->id;

는 그래서 그 foreach는 것입니다 가장 루프에서 한 번만 꽤 명백하다 : 나는 가독성을 위해 현재하는 일이에 이전 예제를 켭니다.

답변

3

나는 당신이 원하는 것은이 대신 생각 :

foreach($mysql_result as $row) $site_id = $row->id; 

그냥이 :

$site_id = $mysql_result[0]->id; 
-1

원하는 게 맞나요?

if (1 == count($mysql_result)) 
{ 
    $row = current($mysql_result); 

    // could probably also do this unless the array isn't zero-indexed 
    // $row = $mysql_result[0]; 
} 
+0

내가 않습니다()() 각각 같은 방법으로 실패 현재 생각 DO 루프를 사용 울드. 그것에 대하여 너는 확신하니? 시도해 볼게. – Petruza

0

하나의 결과 만 원하는 경우 반복 할 필요가 없습니다.

$result = mysql_query($query); 
$row = mysql_fetch_assoc($result); 
$site_id = $row['id']; 
1

PS : 나는 가독성을 위해 현재 무엇을 이전 를 켭니다 예 :

foreach ($ 행으로 $ mysql_result) 휴식; 함수에서 그것이 하나 개의 행을 얻을 것이 분명하므로

랩 '

$row = fetch_single_row($mysql_result); 
$site_id = $row->id; 

지금 당신이 원처럼

function fetch_single_row($result) 
{ 
    foreach($mysql_result as $row) break; 
    return $row; 
} 

그런 다음 코드를 보일 것이다 (정지 및 DB 독립적이다) 모든 이상한 foreach (..) 휴식에 대해 궁금해 할 필요가 없습니다. 코드 전체에 문장.

0

당신은

$i =0 
do { 
    $site_id = $mysql_result[$i++]->id; 
} while ($i <= 0);