php - 我如何将此 MySQL 数据转换为此 XML 字符串 (PHP)?

标签 php mysql xml

在我的一个网站上,我将所有访问者及其国家/地区代码记录在 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/

相关文章:

php - MailChimp API 2.0 批量订阅 PHP

mysql - 如何将字符串转换为位集?

java - Android XML 解析器值

python - 在Python中使用lxml解析ODF

javascript - 使用 simplexml_load_string 在 PHP 中读取 XML

php - 在生产服务器 codeigniter 3.1.2(PHP) session 销毁自动从 facebook 图形 API 重定向?

php - 在 PHP 中加入分解

mysql - 更新另一个表中的多行

mysql - MYSQL分区建议

javascript - 使用 PHP 更新数据库后,无 jquery ajax 更新 View