输出为数组

时间:2009-05-29 14:15:45

标签: php

       $result = mysql_query(" SELECT p.page_url AS url,
                               COUNT(*) AS occurrences 
                               FROM page p, word w, occurrence o
                               WHERE p.page_id = o.page_id AND
                               w.word_id = o.word_id AND
                               w.word_word = \"$keyword\"
                               GROUP BY p.page_id
                               ORDER BY occurrences DESC
                               " );

$output = "<loginsuccess>";

for( $i = 1; $row = mysql_fetch_array($result); $i++ )      {


$output .="<keyword>".$_POST['keyword']."</keyword><name>".$row['url']."</name><occur>".$row['occurrences']."</occur><queryTime>".(substr($end_time-$start_time,0,5))."</queryTime>";
}

$output .= "</loginsuccess>";
print ($output);

我在XML中获取输出,而不是我想在数组中...如何实现这一点。

以下代码无效......

$ret = array();
for( $i = 1; $row = mysql_fetch_array($result); $i++ )      {

     $tmp['url'] = $row['url'];
     $tmp['occurrences'] = $row['occurrences'];

     $ret[] = $tmp;

}
 return $ret;

5 个答案:

答案 0 :(得分:7)

当您致电mysql_fetch_array($result)时,您已经在数组中获得了结果。这就是mysql_fetch_array的作用。

除非你想要其他类型的数组格式?如果是这样,你必须更具体。

答案 1 :(得分:1)

使用print_r()

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

注意:如果您不将其包装在<pre>标签中,则输出将难以阅读,因为它将全部显示在一行

答案 2 :(得分:1)

for-loop 只能以增量方式使用,您尝试使用它来代替 while 循环。这不是“做1000次”,而是“当我们有一行要​​使用时”。

试试这个:

while($row = mysql_fetch_array($result)) {
  $tmp['url'] = $row['url'];
  $tmp['occurrences'] = $row['occurrences'];
  $ret[] = $tmp;
}
return $ret;

答案 3 :(得分:0)

尝试这样,注意编写SQL语句的here-doc样式。我发现它非常有用。另外,我建议重写SQL以使用JOIN而不是使用连接条件拥挤WHERE子句。

$sql = <<<EOSQL
SELECT p.page_url AS url, COUNT(*) AS occurrences 
FROM page p, word w, occurrence o
WHERE p.page_id = o.page_id AND
w.word_id = o.word_id AND
w.word_word = "$keyword"
GROUP BY p.page_id
ORDER BY occurrences DESC;
EOSQL;
$result = mysql_query($sql) or die('failed to execute the query');

while ($row = mysql_fetch_array($result)) {
    print_r ($row);
}

希望这大致是你追求的目标

答案 4 :(得分:0)

您需要在使用之前初始化$ tmp数组。