2

この種のデータをデータベースから配列に挿入することは可能ですか?

Mouse
Keyboard  //Saved from a Textarea box 
Monitor

テーブル全体は次のようになります。

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

フィールド "Items" のデータの各行を配列 ($items としましょう) に割り当てる方法は?

次のようになります。

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

4 に答える 4

4

試す:

$items = explode("\n", $string_from_db);
于 2012-05-23T04:51:57.540 に答える
0

最後の行を正しく読んでいる場合、次のことが必要です。

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

  while($row = $results -> fetch_assoc()) {
        $items[] = $row['Items'];
  }
于 2012-05-23T04:55:00.480 に答える
0

mysql_fetch_assoc()を使用できます

またはPDOStatement::fetchAll()

またはmysqli_result::fetch_assoc()

于 2012-05-23T03:50:13.727 に答える
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
        )

)
于 2012-05-23T03:53:19.380 に答える