2016-10-01 2 views
1

두 행에 대해 동일한 값을 갖는 세 개의 열이 있습니다. PHP는 while 문을 사용하여 동일한 행 중 하나만 같은 행을 인쇄하려고합니다. 데이터가루프 내에서 동일한 행을 PHP로 인쇄하십시오.

ID values 
1  MINI 
1  MINI 
2  MINI 

방법이 내가 ID를 기반으로 같은 행이 모든하지만 한 번만를 인쇄 할 것입니다

ID Values 
    1  MINI 
    2  MINI 

실제로 찾기 위해 MySQL의 쿼리에서 DISTINCT 또는 GROUP BY를 사용할 수 있습니다 위의 예상 답변을하지만 난 정말 PHP를 진술을 사용해야합니다.

이것은 내가 손을 시도하고 어떤이는

$query="SELECT * from table"; 
$sR=$db->query($query); 

$array=array(); 

while($sRow=mysqli_fetch_assoc($sR)){ 
    $ID=$searchRow['ID']; 
    $values=$searchRow['Values']; 

    $array[$ID][]=$ID; 
    $array2[$ID][]=$values; 
} 

foreach($array as $ID => $item){ 
    $value=$array[$ID]; 
    foreach($item as $newItem){ 
     if($newItem===$newItem){ 
      echo '---'.$newItem; 
      break; 
     } 
    } 
} 

내 손을 시도하고있다 그러나 예상대로, 나는 그것에 도움을 필요가 작동하지 않는 것입니다. 고마워 soo.

답변

0

이런 식으로 "이전 ID"-variable (이 경우 $ PRID)을 사용하여 ID가 ​​중복인지 확인합니다. 이 작업을 수행하려면 SQL 쿼리를 ID별로 정렬해야합니다.

$query="SELECT * FROM table ORDER BY ID"; 
$sR=$db->query($query); 

$array=array(); 

$PRID=0; 
while($sRow=mysqli_fetch_assoc($sR)){ 
    $ID=$searchRow['ID']; 
    $values=$searchRow['Values']; 
    if($ID>$PRID){ 
     $array[$ID][]=$ID; 
     $array2[$ID][]=$values; 
    } 
    $PRID=$ID; 
} 

foreach($array as $ID => $item){ 
    $value=$array[$ID]; 
    foreach($item as $newItem){ 
     if($newItem===$newItem){ 
      echo '---'.$newItem; 
      break; 
     } 
    } 
} 
0

은 옵션 1 또는 옵션 2

$query="SELECT * FROM table ORDER BY ID"; 
$sR=$db->query($query); 

$array = array(); 

// first option, expected output 
// array(
// 0 => 'value', 
// 1 => 'value' 
//) 
foreach($sR as $value) { 
    $array[$value['ID']] = $value['Values']; 
} 

var_dump($array); 

$array2 = array(); 
// second option 
foreach($sR as $value) { 
    $array2[$value['ID']] = array(
    'ID' => $value['ID'], 
    'Value' => $value['Value'] 
); 
} 

var_dump($array2); 
// expected output 
// array(
// 0 => array(
// 'ID' => 0, 
// 'Value' => 'value' 
// ), 
// 1 => array(
// 'ID' => 1, 
// 'Value' => 'value' 
// ) 
//) 
시도
관련 문제