3

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 折れ線グラフで並べ替える必要があります。

['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 *は怠惰であり、DB がフィールドを生成することを決定した順序でフィールドを受け入れるのに行き詰まっています。

必要なフィールドを必要な順序で指定します。

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 に答える