需要帮助从mysql_fetch_array()订购数据

时间:2012-07-03 19:34:13

标签: php mysql sql database arrays

我很难组织从mysql_fetch_array()获得的数据。

我有一个DB表,看起来像这样:

+---------------------+------------------+---------------+--------+---------+
| date                | name             | indexed_pages | nameID | entryID |
+---------------------+------------------+---------------+--------+---------+
| 2012-06-15 21:18:06 | site1.com        |           200 |      1 |       1 |
| 2012-06-15 21:18:10 | site2.com        |            25 |      2 |       1 |
| 2012-06-15 21:18:13 | site3.com        |            12 |      3 |       1 |
| 2012-06-15 21:18:16 | site4.com        |             8 |      4 |       1 |
| 2012-06-15 21:18:19 | site5.com        |             2 |      5 |       1 |
| 2012-06-16 00:11:12 | site1.com        |           191 |      1 |       2 |
| 2012-06-16 00:11:21 | site2.com        |            25 |      2 |       2 |
| 2012-06-16 00:11:30 | site3.com        |            12 |      3 |       2 |
| 2012-06-16 00:11:44 | site4.com        |             8 |      4 |       2 |
| 2012-06-16 00:11:51 | site5.com        |             2 |      5 |       2 |
| 2012-06-18 10:20:47 | site1.com        |           191 |      1 |       3 |
| 2012-06-18 10:20:52 | site2.com        |            25 |      2 |       3 |
| 2012-06-18 10:20:56 | site3.com        |            12 |      3 |       3 |
| 2012-06-18 10:21:00 | site4.com        |             8 |      4 |       3 |
| 2012-06-18 10:21:04 | site5.com        |             2 |      5 |       3 |
+---------------------+------------------+---------------+--------+---------+

我需要按照以下方式在Google Line Graph中订购结果:

['date', 'site1_entryID=1', 'site2_entryID=2', 'site3_entryID=3', (...)],";

问题是我在管理我生成的数组时遇到了麻烦。我正在使用以下代码:

mysql_connect("host_here", "username_here", "pass_here") or die(mysql_error());
mysql_select_db("my_database") or die(mysql_error());
$query = "SELECT * FROM pages";
$result = mysql_query($query);
$row = mysql_fetch_array($result);

在此之后,我需要回显entryID = 1的每个站点的indexed_pa​​ges数。

我不知道这个描述是否令人困惑,但我已经尝试了很多东西,无法从数组中组织数据来满足我的需要。求救!

提前致谢!

4 个答案:

答案 0 :(得分:4)

不要使用select *,这是懒惰的,而且你不会按照DB决定生成它们的顺序接受这些字段。

按照您想要的顺序指定所需的字段:

SELECT date, name, indexed_pages, etc...

答案 1 :(得分:1)

我认为最简单的查询是:

$result= mysql_query("SELECT name, index_pages, entryID from table_name WHERE entryID =    
1");
while($row=mysql_fetch_array($result)){
    echo "$row[name]";
    echo "$row[index_pages]";
    echo "$row[entryID]";
}

试试这个。可能会有一些错误。因为我开发得很快。并用你的table_name替换table_name。

或者您可以在表格中显示它:

echo "<table>";
echo "<tr><td>Sit Name</td>";
echo "<td>Page Name</td>";
echo "<td>EntryID</td>";
echo "</tr>";
while($row=mysql_fetch_array($result)){
    echo "<tr>";
    echo "<td>$row[name]</td>";
    echo "<td>$row[index_pages]</td>";
    echo "<td>$row[entryID]</td>";
    echo "</tr>";
}
echo "</table>";

答案 2 :(得分:0)

SELECT date, name, indexed_pages  
FROM pages 
where entryID=1 
order by date asc ,name asc

答案 3 :(得分:0)

不确定这是否有帮助

 mysql_connect("host_here", "username_here", "pass_here") or die(mysql_error());
mysql_select_db("my_database") or die(mysql_error());
$query = "SELECT * FROM pages";
$result = mysql_query($query);
$data[]='date';
while($row = mysql_fetch_assoc($result)){
   $name=substr($row['name'], -4);
   $data[]= $name."_entryID=".$row['entryID'];
}

有点蛮力的方法。