我正在尝试将从数据库数组中检索到的段落分解为单独的单词。这是正确的方法,因为它目前正在发出一个错误,说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;
}
}
}
答案 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]是正确的变量。