2016-09-23 5 views
-1

私は3つの異なるクエリ($ rs1、$ rs2、$ rs3)を作成しました。指定された製品に割り当てられたイメージがあるかどうかをdb内で調べます。foreachを使用したクエリの最適化?

私は、これをすべて1つのクエリと1つのforeachを使用して最適化する方法はわかりません。

誰も私を助けることができる場合は、ここでのコードは次のとおりです。

<?php use_helper("StaticUrl");?> 
<?php 
$rs1 = Doctrine_Query::create()->from("Product") 
          ->select("photo1") 
          ->where("title = ?", $product) 
          ->fetchOne(array(), Doctrine_Core::HYDRATE_ARRAY); 

$rs2 = Doctrine_Query::create()->from("Product") 
          ->select("photo2") 
          ->where("title = ?", $product) 
          ->fetchOne(array(), Doctrine_Core::HYDRATE_ARRAY); 

$rs3 = Doctrine_Query::create()->from("Product") 
          ->select("photo3") 
          ->where("title = ?", $product) 
          ->fetchOne(array(), Doctrine_Core::HYDRATE_ARRAY); 

          ?> 


<div class="product_image"> 
    <?php 
     $href = url_for($product->getRouteUrl(ESC_RAW)); 
     if ($sf_context->getActionName() == 'view') 
    { 
     $href = static_url_for($product->generatePhotoPath('large',ESC_RAW)); 
    } 
    ?> 

    <a <?php echo $sf_context->getActionName() == 'view' ? 'class="lightbox"' : ''; ?> href="<?php echo $href;?>" title="<?php echo $product; ?>"> 
     <img src="<?php echo static_url_for($product->generatePhotoPath(ESC_RAW)); ?>" alt="<?php echo $product; ?>" data-zoom-image="<?php echo static_url_for($product->generatePhotoPath('large',ESC_RAW)); ?>" id="zoomea<?php echo SITE_ID; ?>" /> 
    </a> 


    <div id="gallery_01" style="position:absolute;"> 
    <?php if(!empty($rs1['photo1'])){ ?> 

    <a href="#" data-image="<?php echo static_url_for($product->generatePhotoPath("medium", 1, ESC_RAW)); ?>" data-zoom-image="<?php echo static_url_for($product->generatePhotoPath("large", 1, ESC_RAW)); ?>" > 
    <img class="zoomab" src="<?php echo static_url_for($product->generatePhotoPath("small", 1, ESC_RAW)); ?>" width="50" height="60"/> 
    </a> 
    <?php } 

     if(!empty($rs2['photo2'])){ 
    ?> 
    <a href="#" data-image="<?php echo static_url_for($product->generatePhotoPath("medium", 2, ESC_RAW)); ?>" data-zoom-image="<?php echo static_url_for($product->generatePhotoPath("large", 2, ESC_RAW)); ?>" > 
    <img class="zoomab" src="<?php echo static_url_for($product->generatePhotoPath("small", 2, ESC_RAW)); ?>" width="50" height="60" /> 
    </a> 

    <?php } 

     if(!empty($rs3['photo3'])){ 
    ?> 

    <a href="#" data-image="<?php echo static_url_for($product->generatePhotoPath("medium", 3, ESC_RAW)); ?>" data-zoom-image="<?php echo static_url_for($product->generatePhotoPath("large", 3, ESC_RAW)); ?>" > 
    <img class="zoomab" src="<?php echo static_url_for($product->generatePhotoPath("small", 3, ESC_RAW)); ?>" width="50" height="60" /> 
    </a> 
<?php } ?> 

</div> 

</div> 

<script src="/js/elevatezoom/jquery.elevatezoom.js" type="text/javascript"></script> 
+0

どう 'について - >( "写真1、写真2、写真3")を選択し' – RiggsFolly

答えて

0
<?php use_helper("StaticUrl");?> 
<?php 
$rs1 = Doctrine_Query::create()->from("Product") 
          ->select("photo1,photo2,photo3") 
          ->where("title = ?", $product) 
          ->fetchOne(array(), Doctrine_Core::HYDRATE_ARRAY); 
          ?> 


<div class="product_image"> 
    <?php 
     $href = url_for($product->getRouteUrl(ESC_RAW)); 
     if ($sf_context->getActionName() == 'view') 
    { 
     $href = static_url_for($product->generatePhotoPath('large',ESC_RAW)); 
    } 
    ?> 

    <a <?php echo $sf_context->getActionName() == 'view' ? 'class="lightbox"' : ''; ?> href="<?php echo $href;?>" title="<?php echo $product; ?>"> 
     <img src="<?php echo static_url_for($product->generatePhotoPath(ESC_RAW)); ?>" alt="<?php echo $product; ?>" data-zoom-image="<?php echo static_url_for($product->generatePhotoPath('large',ESC_RAW)); ?>" id="zoomea<?php echo SITE_ID; ?>" /> 
    </a> 


    <div id="gallery_01" style="position:absolute;"> 
    <?php if(!empty($rs1['photo1'])){ ?> 

    <a href="#" data-image="<?php echo static_url_for($product->generatePhotoPath("medium", 1, ESC_RAW)); ?>" data-zoom-image="<?php echo static_url_for($product->generatePhotoPath("large", 1, ESC_RAW)); ?>" > 
    <img class="zoomab" src="<?php echo static_url_for($product->generatePhotoPath("small", 1, ESC_RAW)); ?>" width="50" height="60"/> 
    </a> 
    <?php } 

     if(!empty($rs1['photo2'])){ 
    ?> 
    <a href="#" data-image="<?php echo static_url_for($product->generatePhotoPath("medium", 2, ESC_RAW)); ?>" data-zoom-image="<?php echo static_url_for($product->generatePhotoPath("large", 2, ESC_RAW)); ?>" > 
    <img class="zoomab" src="<?php echo static_url_for($product->generatePhotoPath("small", 2, ESC_RAW)); ?>" width="50" height="60" /> 
    </a> 

    <?php } 

     if(!empty($rs1['photo3'])){ 
    ?> 

    <a href="#" data-image="<?php echo static_url_for($product->generatePhotoPath("medium", 3, ESC_RAW)); ?>" data-zoom-image="<?php echo static_url_for($product->generatePhotoPath("large", 3, ESC_RAW)); ?>" > 
    <img class="zoomab" src="<?php echo static_url_for($product->generatePhotoPath("small", 3, ESC_RAW)); ?>" width="50" height="60" /> 
    </a> 
<?php } ?> 

</div> 

</div> 

<script src="/js/elevatezoom/jquery.elevatezoom.js" type="text/javascript"></script> 
関連する問題