2012-04-29 186 views
3

我想從數據庫數組中檢索一個段落爲單獨的單詞。這是正確的方式去做,因爲它正在給出一個錯誤,說explode()需要2個參數,所以它不能拿起$ row數組。爆炸數據庫數組PHP

function words() { 
     $query = mysql_query("SELECT text FROM table WHERE textID = 1"); 
     while($row = mysql_fetch_array($query)) { 
      $e[] = explode(" ", $row); 
      foreach($e as $r) { 
       echo $r; 
      } 
     } 
    } 

回答

3
function words() { 
     $query = mysql_query("SELECT text FROM table WHERE textID = 1"); 
     while($row = mysql_fetch_array($query)) { 
      $e[] = explode(" ", $row[0]); 
      foreach($e as $r) { 
       echo $r; 
      } 
     } 
    } 

$排陣。選擇第一個爆炸元素。閱讀文檔Explode

+0

我錯過了那部分。非常感謝你。 – ashley 2012-04-29 10:53:32

+1

對於downvoters,我的回答有什麼問題? – 2012-04-29 11:02:27

0
function words() { 
     $query = mysql_query("SELECT text FROM table WHERE textID = 1"); 
     while($row = mysql_fetch_array($query)) { 
      $e[] = explode(" ", $row[0]); 
      foreach($e as $r) { 
       echo $r; 
      } 
     } 
    } 
+0

mysql_fetch_assoc將返回給你的數組與「文本」字段 – 2012-04-29 10:30:41

+0

哎呀沒有注意到,他正在使用mysql_fetch_array。 – Lock 2012-04-29 10:34:58

0

您在這裏使用錯誤的功能架構。
根本不需要words()函數。 explode就夠了。
雖然你非常需要一個函數來從mysql獲取數據,這顯然與爆炸需求無關。
另請注意,函數不應該執行任何輸出,而只能使用retirn值(除了僅用於輸出的函數外)。

因此,該功能可

function dbgetvar($query){ 
    $res = mysql_query($query); 
    if (!$res) { 
    trigger_error("dbget: ".mysql_error()." in ".$query); 
    return FALSE; 
    } 
    $row = mysql_fetch_row($res); 
    if (!$row) return NULL; 
    return $row[0]; 
} 

而且你的代碼變得

$text = dbgetvar("SELECT text FROM table WHERE textID = 1"); 
$words = explode(" ",$text); 
foreach ($words as $w) echo $w; 
-1
function words() { 
     $query = mysql_query("SELECT text FROM table WHERE textID = 1"); 
     while($row = mysql_fetch_array($query)) { 
      $e = explode(" ", $row); 
      foreach($e[0] as $r) { 
       echo $r; 
      } 
      } 
    } 

的$行那樣簡單與因此字段值$ê完全填充[0]是正確的變量。