2011-12-06 9 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を渡して、結果と同じ形式を常に期待します。