在我的一个网站上,我将所有访问者及其国家/地区代码记录在 MySQL 表中。
为了简单起见,我们假设该表的列是“IP”和“国家/地区”。所以我有一大 table 来自几个不同国家的访客。
出于显示目的,我需要将此数据放入 XML 格式字符串中,如下所示:
<set label='US' value='17'/>
<set label='FR' value='12'/>
<set label='GB' value='18'/>
<set label='AU' value='8' />
其中value='' 是来自该国家/地区的访问者数量。我希望该字符串包含表中的所有国家/地区。
我认为可以做到这一点的一种方法是计算特定国家/地区的所有行,例如:
$query = mysql_query("SELECT * FROM visitors WHERE country='US'");
$string.="<set label='US' value='".mysql_num_rows($query)."'/>";
$query = mysql_query("SELECT * FROM visitors WHERE country='FR'");
$string.="<set label='FR' value='".mysql_num_rows($query)."'/>";
$query = mysql_query("SELECT * FROM visitors WHERE country='DE'");
$string.="<set label='DE' value='".mysql_num_rows($query)."'/>";
我很快意识到问题是我的访客来自数百个不同的国家,这真的很困惑!而且,以后我可能会想念某个人来自的国家。
没有更简单的方法吗?也许使用特殊的数组和 foreach 之类的...
感谢您的帮助!
最佳答案
类似这样的事情:
$query = mysql_query("SELECT country, count(id) as usercount FROM visitors group by country;");
$fmt = "<set label='%s' value='%s' />\n";
$rows = mysql_fetch_array($query);
foreach ($rows as $row) {
$string.= sprintf($fmt, $row[0], $row[1]);
}
关于php - 我如何将此 MySQL 数据转换为此 XML 字符串 (PHP)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9798247/