我很难组织从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_pages数。
我不知道这个描述是否令人困惑,但我已经尝试了很多东西,无法从数组中组织数据来满足我的需要。求救!
提前致谢!
答案 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'];
}
有点蛮力的方法。