@Sizoider

Не могу найти ошибку в цикле?

Ребят,помогите найти ошибку!уже воторой день бьюсь.
дело такое:нужно пройтись по массиву,проверить есть ли в свойствах каздого обэкта какое то значение.если есть (что бы не городить кучу кода) вывести "ааа" если нет то "ббб".
вроди бы ничего сложного,но если я передаю через форму условие то всё нормалйно вьводит,если нет то вообще ничего не выводит хотя должно выводить "ббб".
спасибо заранее

$response_xml_data = file_get_contents($url);
 if($response_xml_data){
     $data = simplexml_load_string($response_xml_data);
}
  foreach ($data->property as $prop){ 
        $propID = $prop->id;
        $url2 = "http://daisyletsmaidstone.domus.net/site/go/api/property?propertyID=$propID";
        $response_xml_data2 = file_get_contents($url2);
          if($response_xml_data2){
           $data2 = simplexml_load_string($response_xml_data2){
        }
      if( isset($_POST['bedrooms']) or !empty($_POST['bedrooms']) or isset($_POST['postcode']) or !empty($_POST['postcode'])){
        if($data2->bedrooms == $bedrooms or $data2->location == $postcode){
            echo 'aaaaa';
        }
      }else{
            echo 'bbb';
      }
  }
  • Вопрос задан
  • 219 просмотров
Пригласить эксперта
Ответы на вопрос 4
Express777
@Express777
if($data2->bedrooms == $bedrooms or $data2->location == $postcode){


Откуда взялись эти переменные $bedrooms ,$postcode ? Они точно где то присвоены?
Ответ написан
Rou1997
@Rou1997
empty вызывает ошибку при незаданном параметре, замените or на and.
Ответ написан
@Sizoider Автор вопроса
неее, какая то синтаксическая ошибка.
вот тут походу.
if($response_xml_data2){
           $data2 = simplexml_load_string($response_xml_data2){
        }

её исправил,всё равно не так как мне нужно работает
вообщем в у меня поиск по недвижимости.
если человек галочку никуда не ставит,то нужно что бы все квартиры вывело,если где то галочку поставит,то тогда только соответсвующие в параметру галочки.
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Написано неряшливо, и без особого понятия что зачем вообще пишется.
if($response_xml_data)
$response_xml_data у вас не булево значение, значит нужно проверить что вы там хотите получить.
foreach ($data->property as $prop)
неполхо бы проверить что $data->property это непустой массив.
if( isset($_POST['bedrooms']) or 
    !empty($_POST['bedrooms']) or 
    isset($_POST['postcode']) or 
    !empty($_POST['postcode'])){
        if($data2->bedrooms == $bedrooms or 
           $data2->location == $postcode){
            echo 'aaaaa';
тут вообще все грустно, !empty и isset вместе, зачем??? если не пустая значит точно есть. А если пост запрос отправлен с пустыми полями - будет существовать но будет пустая. Плодите лишний код - путаетесь в собственных ногах.
Напишите нормально структуру и все заведется.
Пользуйтесь отладкой, хотя бы в пределах print_r, сильно помогает.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы