我为我的网站制作了一个php / ajax / mysql / json脚本,以显示所有标签。
如果我获取页面ID,它将显示该页面的所有标签。 但!在我的主页面中,我想显示所有带有计数器的页面上的所有标签。
例如,如果我用
标记了4个页面"**ilovestackoverflow**"
我想在我的主页中看到
"**ilovestackoverflow (4)**"
我知道我可以用mysql COUNT()计算行数,但不幸的是我在这种情况下无法使用它,但是我尝试了很多方法:(
(函数sqlnez($ value)是我的stripslashes脚本)
php:
$server = mysql_connect($host, $user, $password);
$connection = mysql_select_db($database, $server);
//if got pageID
if(isset($_GET['id'])) {
$query = mysql_query("SELECT * FROM tags WHERE id=".sqlnez($_GET['id'])."");
$json = "({ tags:[";
for ($x = 0, $numrows = mysql_num_rows($query); $x < $numrows; $x++) {
$row = mysql_fetch_assoc($query);
$json .= "{tag:'" . $row["tag"] . "'}";
if ($x < mysql_num_rows($query) -1)
$json .= ",";
else
$json .= "]})";
}
}
//this is the part what needs help
//if got nothing
else {
$query = mysql_query("SELECT * FROM tags GROUP BY tag");
$json = "({ tags:[";
for ($x = 0, $numrows = mysql_num_rows($query); $x < $numrows; $x++) {
$row = mysql_fetch_assoc($query);
$json .= "{tag:'" . $row["tag"] . "',counter:'" . I WANT THE COUNTER HERE . "'}";
if ($x < mysql_num_rows($query) -1)
$json .= ",";
else
$json .= "]})";
}
}
$response = $_GET["callback"] . $json;
echo utf8_encode($response);
mysql_close($server);
感谢您的帮助和时间:)
答案 0 :(得分:1)
您的sql请求应为SELECT tag, COUNT (*) as count FROM tags GROUP BY tag
,然后将I WANT THE COUNTER HERE
替换为$row['count']
答案 1 :(得分:0)
不是手工编写json(这是一个非常糟糕的主意,无论如何),你应该使用json_encode