[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: помогите разобраться с запросом
newalexsej
запрос берет информацию о объекте недвижимости с уникальным id из двух таблиц (с условиями из дополнительных)....
одна из них с именами файлов фотографий - для одного объекта может существовать несколько строк с уникальными id-фотографии и где id-объекта равно property-фотографии
из за этого при наличии нескольких фотографий для объекта недвижимости на выходе дублирование объекта (с уникальным именем фотографии standard-фотографии)

задача стоит в не повторении объекта и выводе для него всех standard-фотографии

пытался подставить запрос на фото в внутри foreach убрав упоминание в основном....

<?php

defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

$now = date( "Y-m-d H:i:s", time()+$mosConfig_offset*60*60 );

$menu= new mosMenu( $database );
$menu->load( 1 );
$params = mosParseParams( $menu->params );

$count = isset( $params->count ) ? $params->count : 200;
$orderby = @$params->orderby;

switch (strtolower( $orderby )) {
case 'latest':
$orderby = "p.created DESC";
break;
case 'hottest':
$orderby = "p.hits DESC";
break;
default:
$orderby = "p.created ASC";
break;
}

$sql = "SELECT p.id, p.name, p.full_text, ph.standard FROM #__hp_properties AS p"
. "\nLEFT JOIN #__hp_prop_types AS t ON p.type = t.id"
. "\nLEFT JOIN #__hp_featured AS f ON f.property = p.id"
. "\nLEFT JOIN #__hp_photos AS ph ON ph.property = p.id"
. "\nWHERE p.published='1' AND p.approved='1' AND t.published='1' "
. "\n AND (publish_up = '0000-00-00 00:00:00' OR publish_up <= '$now')"
. "\n AND (publish_down = '0000-00-00 00:00:00' OR publish_down >= '$now')"
. "\nORDER BY ".$orderby
. ($count ? " LIMIT $count" : "");

$database->setQuery( $sql );

$rows = $database->loadObjectList();

header('Content-type: application/xml');
$encoding = split("=", _ISO);
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>"; ?>

<realty-feed xmlns="http://webmaster.yandex.ru/schemas/feed/realty/2010-06">
<
generation-date>2010-10-05T16:36:00+04:00 </generation-date>
<?php
foreach ($rows as $row) {
echo ("<offer internal-id=\"$row->id\">");
$type=htmlspecialchars($row->name);


echo ("<type>".iconv("windows-1251","UTF-8",$type)."</type>"."\n");



echo ("<photo>".$row->standard."</photo>"."\n");




echo "<url>";
if ($mosConfig_sef == "1"){
echo sefRelToAbs("index.php?option=com_hotproperty&task=view&id=".$row->id);
} else {
echo $mosConfig_live_site . "/index.php?option=com_hotproperty&task=view&id=" . $row->id;
}
echo "</url>\n";

$words = $row->full_text;
$words = preg_replace("'<script[^>]*>.*?</script>'si","",$words);
$words = preg_replace('/<a\s+.*?href="([^"]+)"[^>]*>([^<]+)<\/a>/is','\2 (\1)', $words);
$words = preg_replace('/<!--.+?-->/','',$words);
$words = preg_replace('/{.+?}/','',$words);
$words = preg_replace('/ /',' ',$words);
$words = preg_replace('/&/',' ',$words);
$words = preg_replace('/"/',' ',$words);
$words = strip_tags($words);
$words = htmlspecialchars($words);
echo ("<description>".iconv("windows-1251","UTF-8",$words)."</description>"."\n");
echo ("</offer>"."\n");
}
?>
</realty-feed>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.