2012-05-23 3 views
2

데이터베이스에서 이러한 종류의 데이터를 배열에 삽입 할 수 있습니까?데이터베이스에서 공백이있는 데이터를 배열에 삽입

Mouse 
Keyboard //Saved from a Textarea box 
Monitor 

전체 테이블은 다음과 같습니다.

id || Owner || Items 
-------------------------- 
1 || John || Mouse 
    ||   || Keyboard //This is in a single row 
    ||   || Monitor 
-------------------------- 

어떻게 배열로 필드의 데이터 "항목"의 각 라인을 할당하는 (의는 $ 항목을 가정 해 봅시다)?

이 같은 될 수 있도록 :

$items[0] = "Mouse"; 
    $items[1] = "Keyboard"; 
    $items[2] = "Monitor"; 
+0

그래서 당신은 마치 "John"이 마우스, 키보드, 모니터, 키보드 또는 마우스에 소유자가 없다는 것을 알고 있습니까? 또는 항목 목록 만 가지고 계신가요? – Anthony

+0

이 세 항목은 모두 Johns이지만 신경 쓰이지 않습니다. 나는 이미 내 대답을 얻었다. Vishal에게 감사합니다 –

답변

4

시도 :

$items = explode("\n", $string_from_db); 
+0

내가 원했던 것. –

0
+1

죄송합니다, 제 질문에 대해 오해 한 것 같습니다. –

+0

@HafizAbdahah - 나는 우리 모두가 당신의 질문을 오해하고 있다고 생각합니다. 최종 PHP 배열은 어떻게 보이길 원합니까? – Anthony

+0

미안하지만 이미 내 대답을 얻었다. 비샬의 대답. –

0

뭔가를 사용할 수 있습니까?

$arr = explode("\n",$data); // split into lines 
$categories = explode("||",$arr[0]); 
unset($arr[0]); array_values($arr[0]); // dont want categories anymore 
array_walk($categories,create_function('&$v','$v = trim($v);')); // trim space from categories 
$data = array(); // holds info 
foreach((array)$arr as $key=>$val) { 
    if (substr($val,0,5)=="-----") { continue; } // ignore "-----..." lines 
    $row = explode("||",$val); 
    foreach((array)$row as $key2=>$val2) { 
     $data[ $categories[$key2] ][] = trim($val2); 
    } 
} 

echo "<pre>"; 
print_r($data); 
echo "</pre>"; 

위의 코드와 예제 제공 :

Array 
(
    [id] => Array 
     (
      [0] => 1 
      [1] =>  
      [2] =>  
     ) 

    [Owner] => Array 
     (
      [0] => John 
      [1] =>   
      [2] =>   
     ) 

    [Items] => Array 
     (
      [0] => Mouse 
      [1] => Keyboard 
      [2] => Monitor 
     ) 

) 
+0

답해 주셔서 감사합니다.하지만 코드에 줄을 포함시키는 이유는 무엇입니까? 보여줄 테이블은 mysql 데이터베이스의 테이블이다. 내 문제와 관련이 없어요. 오해한다면 미안 해요. –

0

내가 제대로 마지막 줄을 읽고 있어요 경우, 당신이 원하는 :

$results = $db -> query("SELECT Items FROM table"); 

    while($row = $results -> fetch_assoc()) { 
     $items[] = $row['Items']; 
    } 
+0

전체 테이블을 배열로 사용하려면 데이터를 표준화하여 각 항목의 소유권과 ID를 명확히해야합니다. – Anthony

관련 문제