2011-12-06 2 views
2

PHP로 배열을 많이 사용하지 않았습니다. 색상 표가 있습니다. 나는 그 테이블을 많이 사용하려고하고 반복해서 선택을 원하지 않기 때문에 다차원 연관 배열에로드하려고합니다.올바른 PHP MYSQL 배열 사용

은 내가 그랬어 :

echo "color code WHT"; 
echo "description ".$colors['WHT'][0]; 
echo "Hex Code ".$colors['WHT'][1]; 

이이 작업을 수행하는 올바른 방법/방법론이다 : 나는 색상 정보에 액세스 할 때

$result = mysql_query("select * FROM color") or die(mysql_error()); 
$colors = ""; 
while($colorrec = mysql_fetch_array($result)){ 
$colors[$colorrec['ID']][0] = $colorrec['Description']; 
$colors[$colorrec['ID']][1] = $colorrec['HexCode']; 
} 

후, 난 그냥 같은 일을 할 수 있습니까?

답변

1
$colors = ""; //what?? this should be array() 

이해야 무엇인가 : 다음

$result = mysql_query("select * FROM color") or die(mysql_error()); 
$colors = array(); 
while($colorrec = mysql_fetch_array($result)){ 
    $colors[$colorrec['ID']] = array(); 
    $colors[$colorrec['ID']]['Desc'] = $colorrec['Description']; 
    $colors[$colorrec['ID']]['Hex'] = $colorrec['HexCode']; 
} 

당신은 할 수 있습니다 :

echo "color code WHT"; 
echo "description ".$colors['WHT']['Desc']; 
echo "Hex Code ".$colors['WHT']['Hex']; 
0

이런 식으로 잘못하지 마십시오. 또한 배열에서 길을 잃은 경우, 바로 print_r($array)을 수행하면 구조가 출력됩니다.

0

을 함께 시도 :

$result = mysql_query("select * FROM color") or die(mysql_error()); 
$colors = array(); 
while($colorrec = mysql_fetch_array($result)){ 
$colors[$colorrec['ID']] = array( 
       $colorrec['Description'] , 
       $colorrec['HexCode']); 
} 

echo "color code WHT"; 
echo "description ".$colors['WHT'][0]; 
echo "Hex Code ".$colors['WHT'][1]; 
0
  • 닐 당신이 그가으로 할 수있는 언급했듯이 더 깨끗한 이동의 OOP (PHP5)
 

    class Color 
    { 
     $description =""; 
     $hexcode = ""; 
     $someOther=""; 
    } 



    $colors = array(); 
     $result = mysql_query("select * FROM color") or die(mysql_error()); 

     while($colorrec = mysql_fetch_array($result)) 
     { 
      $color = new Color(); 
      $id=$colorrec['HexCode']; 
      $color->description = $colorrec['Description']; 
      $color->hexCode = $colorrec['HexCode']; 
      $colors[$id] = $color; 
     } 

     echo $color['ID']->description; 
     echo $color['ID']->hexCode; 

0

을 원하는 나는이처럼 사용

$numfields = mysql_num_fields($result); 
while($red = mysql_fetch_array($result)){ 
    for ($j=0; $j<$numfields; $j++) { 
      $field_name = mysql_field_name($result, $j); 
      //create Matrix 
      $datapull[$i][$field_name] = $red[$field_name]; 
     } 
     $i++; 
} 
mysql_free_result($result); 
var_dump($datapull); 

이이 클래스 메소드 또는 함수를 사용해야합니다, 검색이 더 일반적이고 단단하다, 따라서 SQL을 전달하면 결과와 동일한 형식을 항상 기대합니다.