簡體   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