爆炸数据库数组PHP

时间:2012-04-29 10:07:33

标签: php arrays explode

我正在尝试将从数据库数组中检索到的段落分解为单独的单词。这是正确的方法,因为它目前正在发出一个错误,说explode()需要2个参数,所以它不能拿起$ row数组。

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;
            }
        }
    }

4 个答案:

答案 0 :(得分: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;
            }
        }
    }

$ row是数组。选择要爆炸的第一个元素。阅读Explode的文档。

答案 1 :(得分: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; 
            } 
        } 
    } 

答案 2 :(得分:0)

您在这里使用错误的功能架构 您根本不需要words()功能。 explode就够了 虽然你非常需要一个函数来从mysql获取数据,这显然与你的爆炸需求无关 另请注意,函数永远不应该执行任何输出,只能重新定义值(除了仅用于输出的函数)。

所以,函数可能是

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;

答案 3 :(得分:-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;
            }
            }
    }

$ row完全填充了字段值,因此$ e [0]是正确的变量。