2011-02-15 2 views
0

$value=array('apple'=>'red', 'mango'=>'yellow'). 처럼 배열을 선언하고 싶습니다. 이제이 값을 데이터베이스에서 가져 오려고합니다. 사과와 빨강 모두. 이 coloures는 'colors'테이블에 저장되고 'fruits'테이블에는 color_id와 함께 저장된다고 가정합니다. 이제 가져 와서이 배열 안에 넣는 방법.배열 선언

나는 배열 (코드를 가져올)과 같은 브래킷 옆에 코드를 넣으려고했으나 작동하지 않았습니다. 아무도 도와 드릴 수 있습니까?

테이블 -> 과일 (fruit_id, color_id, fruit_name) 테이블 -> 컬러 (color_id, COLOR_NAME) 미리

$result=mysql_query("select * from 
fruit_table"); 
while($row=mysql_fetch_array($result)){ 
    $row_color-mysql_fetch_array(mysql_query("select color_name from colors where 
color_id=$row['color_id']")); 
$val[]="$row['fruit_name']=>$row_color[color_name]"; 

} 
$data=implode(",",$val); 
$value=array($data); 

thanxx.

+1

어떤 데이터베이스를 사용하고 있습니까? – GWW

+0

mysql, wamp 서버 phpmyadmin – champ

+0

시도한 것을 게시하십시오. 또한 어떤 DB를 사용하고 있습니까? – SuperSaiyan

답변

3

할일이 두 가지 있습니다.

  1. 데이터베이스에서 필요한 정보를 얻기 위해 쿼리를 수행하십시오.
  2. 쿼리의 결과를 원하는 형식으로 바꿉니다.

다음은 몇 가지 예제 코드입니다 (이미 데이터베이스에 성공적으로 연결되었다고 가정). 나는 데이터베이스 스키마했습니다

가정은 다음과 같습니다

  • 당신은 두 테이블
  • name의 기본 키로 id을 사용하는 색/과일 이름이 들어있는 필드

올바른지 확인하십시오. 그렇지 않으면 쿼리에 약간의 조정이 필요합니다.

$result = mysql_query(' 
    SELECT fruits.name as fruit, colors.name as color 
    FROM fruits 
    JOIN colors 
    ON fruits.color_id = color.id'); 

if (!$result) { 
    die(mysql_error()); 
} 

$value = array(); 

while ($row = mysql_fetch_assoc($result)) { 
    $value[$row['fruit']] = $row['color']; 
} 

mysql_free_result($result); 
+0

thanxx 많이! 그것은 일했다 .. 나는 항상 나의 대답을 여기에서 발견한다. :) – champ

1

이쪽으로?

$value = array(); 
while ($r = mysql_fetch_array($mySqlQuery)){ 
    $value[$r['fruit_field']] = $r['color_field']; 
} 

여기에 MySQL 쿼리가 없습니다. 당신이 이미 그것을 가지고 있기를 바랍니다.

+0

ok 나는 모두를 위의 것을 시험하게한다. .. – champ

+0

thanxx 많이! 내 솔루션있어! – champ

1

다음 코드는 다음과 같습니다. 이것은 기본적으로 요구되는 값의 배열의 값을 가질 것이다 루프의 끝 부분에 연관 ARRAY

//Assuming the name of the fruits column is fruit_name and color column is color_name 

$value = array(); 
$query = "SELECT * FROM colors as c LEFT JOIN fruits as f ON c.color_id=f.color_id"; 
$result = mysql_query($query); 

if(mysql_num_rows($result) > 0) 
{ 
while($row = mysql_fetch_array($result)) 
{ 
$fruitname = $row['fruit_name']; 
$colorname = $row['color_name']; 
$value['$fruitname'] = $color_name; 
} 
} 

의 키 값 쌍의 개념이다.

감사합니다. J

+0

'LEFT JOIN'을 사용하면 색상이 있지만 열매가없는 행이됩니다. – Jacob

+0

thanxx 많이! 내 솔루션있어! – champ