2014-07-22 2 views
0

문제가 생겼습니다. 누구든지 내 아래 코드를 살펴보고 $ 쿼리는 첫 while 루프에서 계산하는 방법을 말해 줄 수 있습니다. 여기에 두 개의 열이 그룹화되어 있습니다. 단지 행 수를 그룹화하지 않고 다른 열 이름을 추가하려고합니다. 마찬가지로 그룹을 사용하는 동안 열에서 행 수를 계산하는 방법

"SELECT CountryCode,NetID,COUNT(OpCode) as count FROM activecon WHERE OpCode='$thisActiveOp' GROUP BY CountryCode,NetID" 

나는 위의 시도하지만 난 내가 $ countryValue와 $ networkValue 내 테이블 행을 에코 내 아래 코드로이 COUNT (옵 코드) 에코하는 방법을 모르겠어요.

$query=mysql_query("SELECT CountryCode,NetID FROM activecon WHERE OpCode='$thisActiveOp' GROUP BY CountryCode,NetID") or die(mysql_error()); 

while($row = mysql_fetch_array($query)) { 
    echo "<tr><td>$thisActiveOp</td>"; 

    $networkID = $row['NetID']; 
    $countryID = $row['CountryCode']; 


    $query2=mysql_query("SELECT countryName,networkName FROM connection_details WHERE countryId='$countryID' AND netId='$networkID'") or die(mysql_error()); 
    while($row2 = mysql_fetch_array($query2)) { 
     $countryValue = $row2['countryName']; 
     $networkValue = $row2['networkName']; 
    } 
echo "<td>$countryValue</td><td>$networkValue</td></tr>"; 

} 
+0

을 에코 -이 :

는하지만 (즉, activecon의 각 레코드에 대한 connection_details에 단지 한 기록이 있다고 가정) 스크립트/SQL은 아마이 단순화 될 수있다 데이터의 세부 사항에 따라 당신은 별칭 이름을 사용한다. (당신은'count as '를 사용하여 열의 별칭 이름을 준다. – Kickstart

+0

왜 첫 번째 SQL 스 니펫을 사용할 수없고'$ count = $ row ['count '];'? –

답변

1

나는 당신이 제시 한 코드가 작동해야한다고 생각, 그래서는 다음과 같습니다

$query=mysql_query("SELECT CountryCode,NetID,COUNT(OpCode) as code FROM activecon WHERE OpCode='$thisActiveOp' GROUP BY CountryCode,NetID") or die(mysql_error()); 

while($row = mysql_fetch_array($query)) { 
    echo "<tr><td>$thisActiveOp</td>"; 

    $networkID = $row['NetID']; 
    $countryID = $row['CountryCode']; 
    $code  = $row['code']; 


    $query2=mysql_query("SELECT countryName,networkName FROM connection_details WHERE countryId='$countryID' AND netId='$networkID'") or die(mysql_error()); 
    while($row2 = mysql_fetch_array($query2)) { 
     $countryValue = $row2['countryName']; 
     $networkValue = $row2['networkName']; 
    } 
    echo "<td>$countryValue</td><td>$networkValue</td><td>$code</td></tr>"; 
} 
0

당신은 MySQL의에서 반환 된 배열에서 카운트를 액세스하는 데 별칭 이름을 사용할 수 있습니다.

<?php 
$query=mysql_query("SELECT b.countryName, b.networkName, COUNT(a.OpCode) AS `count` 
        FROM activecon a 
        INNER JOIN connection_details b 
        ON a.CountryCode = b.countryId AND a.NetID = b.netId 
        WHERE a.OpCode='".mysq_real_escape_string($thisActiveOp)."' 
        GROUP BY b.countryName, b.networkName") or die(mysql_error()); 

while($row = mysql_fetch_array($query)) 
{ 
    echo "<tr><td>$thisActiveOp</td><td>".$row['countryName']."</td><td>".$row['networkName']."</td><td>".$row['count']."</td></tr>"; 
} 
관련 문제