3

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

我有一个看起来像这样的数据库表:

+---------------------+------------------+---------------+--------+---------+
| 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 折线图中对结果进行排序:

['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

4 回答 4

4

不要使用select *,这很懒惰,而且您只能按照数据库决定生成它们的顺序来接受这些字段。

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

SELECT date, name, indexed_pages, etc...
于 2012-07-03T19:36:27.153 回答
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 替换为您的。

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

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>";
于 2012-07-03T20:03:53.480 回答
0
SELECT date, name, indexed_pages  
FROM pages 
where entryID=1 
order by date asc ,name asc
于 2012-07-03T19:37:23.570 回答
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'];
}

有点蛮力的方法。

于 2012-07-03T19:46:25.187 回答