2016-06-08 68 views
1

我試圖有3個不同的按鈕,說現在訂單,並將選定的產品添加到購物車,但現在它總是發送相同的產品到購物車。 如果您按下其他產品上的立即訂購按鈕,則?add =始終將相同的ID發送到購物車。發送不同的ID上點擊每個產品

原始代碼:

$itm = $adb->queryrow("SELECT * FROM products WHERE id=? LIMIT 1", array(intval($content['wlpid']))); 
     $vat = $adb->querykeyvalues("SELECT id, multiplier FROM tax"); 
     $prijs = (($itm['price']*($vat[$itm['tax']]/100))/100); 
    } 
    echo ' 
    <div id="the_product_container" class="para_container"></div> 
    <div id="anchor_1_product"></div> 
    <div id="anchor_2_product"></div> 
    <div id="anchor_3_product"></div> 
    <div id="page_product" class="anchor_pos"></div> 
    <div id="page_product_check" class="anchor_check"></div> 

    <div class="bonds"> 
     <div class="scaleme"> 
      <img alt="Curolocker" class="content" src="/uploaded/overige/'.$content['main'].'">'; 
      $ar = array(
       1=>"point_one", 
       2=>"point_two", 
       3=>"point_tree", 
       4=>"point_four", 
       5=>"point_five", 
      ); 
      for($i=1; $i<=3; $i++) 
      { 
       if(!empty($content['info'.$i])) 
        echo '<img alt="Product point" id="'.$ar[$i].'" class="'.$ar[$i].'" src="/uploaded/overige/'.$content['info'.$i].'">'; 
      } 

     echo '</div> 
    </div> 
    <div class="mobiel_text_con">'; 
     for($i=1; $i<=3; $i++) 
     { 
      if(!empty($content['info'.$i])) 
       echo '<div class="text_block"> 
        <h3>'.$content['info'.$i.'h'].'</h3> 
        <hr /> 
        <p> 
         '.$content['info'.$i.'t'].' 
        </p> 
       </div>'; 
     } 
    echo '</div> 
    <div class="pricetag"> 
     <p>'.number_format($prijs,2,',','.').' &euro;</p> 
    </div>'; 

    if(!empty($content['wlpid'])) 
    { 
     echo '<div class="button_holder_ordernow"> 
     <a title="Order Now" href="/winkelwagen.html?add='.$itm['id'].'" class="sumbit_button">order now</a> 
     </div>'; 
    } 

什麼,我試圖做的是這樣的:

$subs = $adb->queryarray("SELECT *, (SELECT value FROM propertyvarchar WHERE lang=1 AND propid=1 AND product=p.id lIMIT 1) as name, (SELECT value FROM propertyvarchar WHERE lang=1 AND propid=5 AND product=p.id lIMIT 1) as opt FROM products p WHERE master=?", array($itm['id'])); 
if(empty($subs)) 
{ 
    echo '<div class="pricetag"> 
     <p>'.number_format($prijs,2,',','.').' &euro;</p> 
    </div> 
    <div class="button_holder_ordernow"> 
     <a title="Order Now" href="/winkelwagen.html?add='.$itm['id'].'" class="sumbit_button">order now</a> 
    </div> 
    <div class="photo_overlay_filter2"></div>'; 
} 
else 
{ 
    echo '<div style="display:inline-block; text-align:center; width:100%;"> 
     <div class="pricetag"> 
      <p>'.$itm['name'].' ('.$itm['opt'].') '.number_format($prijs,2,',','.').' &euro;</p> 
     </div> 
     <div style="display:inline-block;"> 
      <div class="button_holder_ordernow" style=" padding-bottom:20px;"> 
       <a title="Order Now" href="/winkelwagen.html?add='.$itm['id'].'" class="sumbit_button">order now</a> 
      </div> 
     </div> 
    </div> 
    <div class="photo_overlay_filter2"></div>'; 
    foreach($subs as $s) 
    { 
     $prijs = (($s['fromprice']*($vat[$s['tax']]/100))/100); 
     echo '<div style="display:inline-block; text-align:center; width:100%;"> 
      <div class="pricetag"> 
       <p>'.$itm['name'].' ('.$s['opt'].') '.number_format($prijs,2,',','.').' &euro;</p> 
      </div> 
      <div style="display:inline-block;"> 

       <div class="button_holder_ordernow" style=" padding-bottom:20px;"> 
        <a title="Order Now" href="/winkelwagen.html?add='.$s['id'].'" class="sumbit_button">order now</a> 
       </div> 
      </div> 
     </div> 
     <div class="photo_overlay_filter2"></div>'; 
    } 
    echo '<br /><br /><br /><br />'; 
} 
+0

從告訴你,你的代碼永遠只能選擇一個產品所以'$ itm ['id']'只能是一個數字 – RiggsFolly

+0

另外我們沒有想法'$ subs'是什麼 – RiggsFolly

+0

@RiggsFolly對不起\t added subs – marijn

回答

0

1.使用不同的行動不同勢的網址,例如:

<div class="button_holder_ordernow" style=" padding-bottom:20px;"> 
    <a title="Order Now" href="/ORDERNOW.html?add='.$s['id'].'" class="sumbit_button">order now</a> 
</div> 
<div class="button_holder_addtocart" style=" padding-bottom:20px;"> 
    <a title="Order Now" href="/ADDTOCART.html?add='.$s['id'].'" class="sumbit_button">add to cart</a> 
</div> 

2.您SELECT statment被限制在一個唯一的記錄,試試這個INSEAD:

SELECT * FROM products 

甚至更​​好(查詢性能和「代碼可讀」的原因)

SELECT 
    field1, 
    field2, 
    field3, 
    field4 
FROM 
    products 

這個案例你得到了ALL的產品,你可以限制它或分頁通過LIMIT參數和簡單的一招結果 - 添加到URL &page = XXX和PHP做這樣的事情:

$page=0; 
$articles_per_page = 10; 
if (isset($_GET['page'] && (int)$_GET['page']>0) { 
    $page = (int)$_GET['page']; 
} 
$limit = 'LIMIT ' . $page * $articles_per_page . ', ' . $articles_per_page; 

$sql= "SELECT 
     field1, 
     field2, 
     field3, 
     field4 
    FROM 
     products 
    {$limit};"; 

ofcourse你必須至少添加鏈接到上一頁($page - 1 )和下一頁($page +1)頁面或通過附加查詢計數頁面(使用SELECT COUNT(*) FROM products並通過$ articles_per_page分隔結果)並創建指向結果頁面的鏈接。

附加:如果您希望只顯示一篇文章,請使用WHERE article_id = %d而不是LIMIT 1

一兩件事: 如果你有所需的article_id使用數組:

SELECT 
    field1, 
    field2, 
    field3, 
    field4 
FROM products 
WHERE article_id IN (**ID_LIST**);", 

其中ID_LIST是逗號分隔的ID列表,只是implode(',', $ids_array)

0

要選擇所有產品,您可以將您的SQL查詢更改爲: SELECT * FROM products 時候你應該添加一些的foreach迭代每個產品。

0

您的產品查詢具有Limit = 1,並且您正在從中加載項目的ID,爲什麼發送的ID不同?