gpt4 book ai didi

php - 在php中从mysql获取特定列数据的最简单方法(特殊情况)

转载 作者:行者123 更新时间:2023-11-29 12:27:58 24 4
gpt4 key购买 nike

我想在生产站点上编写一个小的 php 文件,它将把 mysql 的结果转换为给定的 XML 模板。所以我做了什么(在我知道站点数据库是如何构建之前),我写了一个非常小的模拟数据库,带有一个表并测试了我的脚本,它似乎有效,这是表和脚本的一个片段

+----+---------------+----------------------------+--------+
| id | house | time_cr | price |
+----+---------------+----------------------------+--------+
| 1 | Villa_Niki | 2015-01-13 13:23:56.543294 | 25000 |
| 2 | toni | 2015-01-13 13:24:31.133273 | 34000 |
| 3 | kolio | 2015-01-13 13:26:06.720740 | 10000 |
| 4 | aldomirovvtxi | 2015-01-13 13:26:24.226741 | 100000 |
+----+---------------+----------------------------+--------+

然后脚本将数据提取到 XML 中,非常简单

$kol=$xml->addChild('realty');
while($row=mysql_fetch_array($result))
{


$kol->addChild('id',$row["id"]);
$kol->addChild('creation-date',$row["time_cr"]);
$kol->addChild('last-update-date',$row["time_cr"]);
$kol->addChild('url','leva');
$kol->addChild('bldtype',$row["house"]);
........

所以只需使用 fetch_array,然后使用列索引和循环就可以了

昨天我打开了网站上的数据库,结果发现他们没有将所有信息放在单独的列中,例如城市、州等的单独列,而是将所有信息放在一个单独的列中。单列,如下所示:

那么有没有一种简单的方法可以让它在这种情况下工作,比如对于给定的特定列表sdb_id,将街道提取到街道 XML 标签中,将区域提取到区域 XML 标签等?欢迎大家提出建议,谢谢!

最佳答案

这是一个设计不当的数据库。如果我是您,我会在将字段/数据提取到 XML 文件后重新设计数据库。

我现在没有在这个 Linux 发行版上运行 PHP/MySQL/PHPMyAdmin,所以我无法真正编写代码来帮助你,而且我需要 sleep 。也许我明天会。我脑子里有一个想法如何解决这个问题,但我很难将其表达为从这些类型的设计不良的数据库中提取数据的算法。

您可能需要查询 ID 字段的最低和最高值,并设置变量 $start、$id(当前指针)、$finish。然后有这样的东西:

  for ($id = $start; $id <= $finish; $id++) {
while ($row->id = $id) {
$array[$id][$field] = $row->field;
$array[$id][$field][$value] = $row->value;
$row->nextRow();
}
}

这只是伪代码...我要 sleep 了。

<小时/>

让我指出您正在使用旧的 MySQL PHP API。使用 MySQLi...或者更好的是,使用 PDO。

以下是 PDO 的文档: PDO Documentation - PHP

对于 MySQLI: PDO Documentation - PHP

关于php - 在php中从mysql获取特定列数据的最简单方法(特殊情况),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28019293/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com