2013-02-20 1 views
0

제공된 도움말을 미리 감사드립니다.PHP : "While"루프는 변수의 각 반복마다 동일한 값을 반환합니다.

route | busnumber 
    2   300 
    4   123 
    2   455 
12   934 

내 목표는했다 "경로"/ 인쇄 모든 "busnumber"의 목록을 반향하는 것입니다 = 2 나는 내가 할 수있는 알고

나는 이런 식으로 뭔가를 반환하는 쿼리를 수행하고 있습니다 DB에 대한 쿼리를 수행하지만 각 경로마다이 쿼리를 실행하고 싶지는 않습니다. 결과 집합은 실제로 하나의 마스터, 복잡한 쿼리의 일부이므로 배열을 사용하여 목표를 달성해야합니다.

쿼리가 올바르게 작동하고 적절한 정보가 표시됩니다. 결과를 배열로 반환합니다. 즉 ...

$query=("SELECT * from foo") 
    $result=mysql_fetch_assoc($query); 

내 현재 코드는 (내 의견에주의) 다음과 같습니다 : 내가 갖는 어떤

mysql_data_seek($result,0); // because I'm previously iterating through $result 
while ($i2=mysql_fetch_assoc($result)) { 
$busnumber=$i2['busnumber']; 
$busroute=$i2['route']; 
echo "<div class='businfo'>"; 
if ($busroute='2'){   // I only want this to happen if $busroute=2 
echo "Current Route = $busroute</br>"; 
echo "Bus Number : $busnumber </br>"; 
} 
echo "</div>"; 
} 

그러나이 같은 '$의 busroute을'메아리 (2) 하지만 각 행에 대해 '$의 busnumber'다른 같은 :

Current Route = 2 
Bus Number : 194 
Current Route = 2 
Bus Number : 196 
Current Route = 2 
Bus Number : 2002 
Current Route = 2 
Bus Number : 2010 
Current Route = 2 
Bus Number : 2013 

문제는 그 버스 번호의 모든 그것은 모든 경로에서 버스 번호 목록입니다 경로 (2)의 일부가 아닌 것입니다. $ routenumber = 2 인 경우에만 foreach 루프를 수행하기를 원합니다.

다시 한번 감사의 도움말 : 대한

+1

다시'$ busroute = 변경 '$의 busroute'에 2'' =='2'' wow..I 내가 그것을 잡을하지 않았다 믿을 수 없어 –

답변

3
if ($busroute='2'){ 

문제는 당신이 여기이 동등하게 여부를 확인하지 않는 것을, 당신은 '당신이로 변경이 동일하고 할당하는 것입니다 잘 될 것이다 :

if ($busroute=='2'){ 
+0

하지만 그건 왜 여기에 여분의 눈 세트가 필요한지! 매우 감사합니다. 내 논리의 나머지 부분이 맞았 기 때문에 기쁘다. :) – dan

0
$query = "SELECT * from foo"; 
$result = mysql_query($query); 


while($row = mysql_fetch_assoc($result)) { 
    if ($row['route'] == 2) { 
     // do your stuff 
    } 
} 
관련 문제