繁体   English   中英

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

[英]easiest way to fetch specific column data from mysql in php (special case)

我想在生产站点上写一个小的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然后使用列索引和循环就可以了

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

那么有没有一种简单的方法可以使其在这种情况下工作,例如对于给定的特定listingsdb_id,将Street提取到street XML标记中,将Area提取到area XML标记中? 欢迎所有建议,谢谢!

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

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

您可能需要查询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();
      }
  }

这只是伪代码...我要去睡觉了。


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

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

对于MySQLI: PDO文档 -PHP

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM