2016-06-08 66 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不同?