MySQL sayısı json nesnesi içerir

2 Cevap php

Bütün etiketleri göstermek için, benim site için php / ajax / mysql / json komut yaptı.

If I GET the page id it will show me all the tags of that page. But! In my main page i'd like to show all tags, from all pages WITH a counter.

Ben 4 etiketlendi sayfalarından Örneğin

"**ilovestackoverflow**"

Benim ana sayfa görmek istiyorum

"**ilovestackoverflow (4)**"

Ben mysql COUNT ile satırları sayabilirsiniz biliyorum () ama bu durumda bunu kullanamaz unfortunatlety, ancak ben çok yol denedim: (

(Function sqlnez ($ değer) benim stripslashes script)

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);

Yardımlarınız ve zaman için teşekkürler :)

2 Cevap

sql istek SELECT tag, COUNT (*) as count FROM tags GROUP BY tag ardından $row['count'] ile I WANT THE COUNTER HERE olarak değiştirin olmalıdır

Bunun yerine elle json yazma kullanmak json_encode olmalıdır (bu ne olursa olsun, son derece kötü bir fikirdir)