使用SQL生成数据

时间:2015-01-15 11:35:34

标签: php xml

我有一个SQL语句,它获取信息并将其放入XML节点。其中一个节点是图像。在此节点中,需要有一个我从数据库中获取的URL列表。

我目前正在尝试的是我的原始查询:

SELECT ultrait_wpl_properties.id, location1_name, location3_name, location4_name, field_312, field_42, post_code, lot_area, living_area, price, bedrooms, bathrooms, field_308, googlemap_lt, googlemap_ln, street, street_no, ultrait_wpl_property_types.name, property_title, build_year, add_date, ultrait_wpl_items.item_name 
    FROM ultrait_wpl_properties 
    JOIN ultrait_wpl_property_types ON ultrait_wpl_properties.property_type = ultrait_wpl_property_types.id 
    JOIN ultrait_wpl_items ON ultrait_wpl_properties.id = ultrait_wpl_items.parent_id 
    ORDER BY ultrait_wpl_properties.id

然后,当我到达我想要的节点时,我有这个查询

    $sqli = "SELECT item_name
    FROM ultrait_wpl_items, ultrait_wpl_properties
    WHERE ultrait_wpl_items.parent_id = ultrait_wpl_properties.id
    AND ultrait_wpl_properties.id = $propertyid";

    $results = $wpdb->get_results($sqli);

    foreach($results as $row){ // foreach loop to iterate over the data in the $result array
        $images = $row->item_name;
    }

我尝试做的是生成其他节点所需的数据,如此......

<root>
<property>
<id>5</id>
<area>United States</area>
<country/>
<city/>
<town>Property in Spain</town>       
<towninner/>
<postcode/>
<lot_area>10000</lot_area>
<living_area>4000</living_area>
<price>100000</price>
<bedrooms>0</bedrooms>
<bathrooms>2</bathrooms>
<summary><p>Description</p></summary>
<latitude>21.3239718</latitude>
<longlitude>-157.87649799999997</longlitude>
<street/>
<streetno/>
<type>Office</type>
<property_title/>
<build_year>1978</build_year>
<add_date>2015-01-13 16:48:08</add_date>
<imageurl></imageurl>
</property>

但是,如果它说imageurl你可以看到一个项目。每个属性可能附有多张图片。

当我进入imageurl时,我尝试了你能看到的第二个代码块,我瞄准的是这样的:

<imageurl>link 1</imageurl>
<imageurl>link 2</imageurl>
<imageurl>link 3</imageurl>
<imageurl>link 4</imageurl>

但之所以这很困难是因为我的原始查询返回了一个重复的属性节点,只有下一个URL。我需要每个ID一个属性节点,但是在imageurl节点中需要多个图片。

1 个答案:

答案 0 :(得分:0)

您应该尝试拆分查询。将imageurl部分分开进行,特别是如果您已将这些图像存储在各自的行中。