2013-11-10 4 views
0

Я уверен, что это простой принцип PHP, однако это я еще не изучил. В принципе работает код:Как правильно сфотографировать эти изображения

<?php 
    for($i=0;$i<count($photos);$i++){ 
     if($photos[$i]->image != ""){ 
      if(JPATH_ROOT.'/images/'.$row->id.'/medium/'.$photos[$i]->image){ 
       if(!$photocount) { 
        $photocount = $photocount + 1; 
        $photoclass = "property_photo_main property_photo_main_" . $photocount; // First Photo Class 
       } 
       ?> 
       <img src="<?php echo JURI::root()?>images<?php echo $row->id;?>/medium/<?php echo $photos[$i]->image?>" class="<?php echo $photoclass; ?>" alt="<?php echo $photos[$i]->image_desc;?>" title="<?php echo $photos[$i]->image_desc;?>"/> 
       <?php 
      } 
     } 
    } 
?> 

Это выводит изображения правильно, однако «Фото графа» не увеличивается, и, таким образом, каждая фотография получает «Первая фотография класса» (property_photo_main_1). Я полностью понимаю, что проблема здесь заключается в том, что счетчик не находится внутри цикла для печати каждой фотографии, но поскольку это непосредственно перед выходом этого изображения, где это цикл, и как я могу реализовать, что счет увеличивается?

HTML-Выход:

   <img src="http://msa.eighttwentydesign.com/images/osproperty/properties/5/medium/51384100282240dc03c72cb44ce05eb9e56021d0c05.jpg" class="property_photo_main property_photo_main_1" alt="" title=""/> 
            <img src="http://msa.eighttwentydesign.com/images/osproperty/properties/5/medium/51384100283f9f748ca556070c2d09553298dc26d8f.jpg" class="property_photo_main property_photo_main_1" alt="" title=""/> 
            <img src="http://msa.eighttwentydesign.com/images/osproperty/properties/5/medium/51384100283b280e25f329d8cf1518bda4700b07765.jpg" class="property_photo_main property_photo_main_1" alt="" title=""/> 
            <img src="http://msa.eighttwentydesign.com/images/osproperty/properties/5/medium/51384100283c801f9afb73308c7fd77a77ea00129bb.jpg" class="property_photo_main property_photo_main_1" alt="" title=""/> 
       </div> 

ответ

1

Вы никогда не увеличиваем $photocount вне что если. Кроме того, вы никогда не сбросить $photoclass

foreach ($photos as $photo) { 
    if (!empty($photo->image)) { 
     if (JPATH_ROOT.'/images/'.$row->id.'/medium/'.$photo->image) { 

      if (!isSet($photocount)) 
       $photocount = 1; 
      else 
       $photocount++; 

      $photoclass = "property_photo_main property_photo_main_" . $photocount; 
      //HTML... 
     } 
    } 
} 

Этот способ $photoclass получает сброс на каждой итерации, также $photocount получает приращение на 1, если он установлен. Я также взял на себя смелость использовать внутренние структуры PHP, такие как foreach или empty, вы можете прочитать об использовании в руководстве.

С JPATH_ROOT.'/images/'.$row->id.'/medium/'.$photo->image не имеет логики и не имеет значения null/false, он всегда будет возвращать true, возможно, вы хотели использовать что-то вроде file_exists?

Использование !$photoclass вместо !isSet($photoclass) будет выдавать неопределенное переменное уведомление.

+0

Спасибо, полный ответ +1 –

Смежные вопросы