2016-06-08 5 views
1

Ich versuche, 3 verschiedene Tasten haben, die Bestellung jetzt sagt und fügt das ausgewählte Produkt in den Warenkorb, aber jetzt sendet es immer das gleiche Produkt in den Warenkorb. Das? Add = sendet immer dieselbe ID in den Warenkorb, auch wenn Sie die Taste für die Bestellung jetzt auf den anderen Produkten drücken.senden Sie verschiedene ID auf klicken Sie auf jedes Produkt

Originalcode:

$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>'; 
    } 

Was ich versucht, ist, dies zu tun:

$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

Aus dem Code, den Sie Sie jemals ONE nur zeigen, wählen Produkt so '$ itm ['id']' kann immer nur eine Zahl sein – RiggsFolly

+0

Plus wir haben keine Idee, was '$ subs' ist – RiggsFolly

+0

@RiggsFolly sorry über das \t hinzugefügt subs – marijn

Antwort

0

1.use diffrent Urls für verschiedene Aktionen, zum Beispiel:

<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. Ihre SELECT statment auf einen Datensatz nur begrenzt ist, versuchen Sie diese insead:

SELECT * FROM products 

oder noch besser (Abfragewahrscheinlichkeit und "codelesbare" Gründe)

SELECT 
    field1, 
    field2, 
    field3, 
    field4 
FROM 
    products 

In diesem Fall haben Sie ALLE Produkte, können Sie es begrenzen oder Paginieren Ergebnisse von LIMIT Parameter und einfachen Trick - fügen &page = XXX zu url und in php so etwas tun:

$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};"; 

natürlich müssen Sie mindestens hinzufügen, um Links zu Prev ($page - 1) und nächste ($page +1) Seiten oder Zählseiten über zusätzliche Abfrage (SELECT COUNT(*) FROM products verwenden und Ergebnis über $ articles_per_page teilen) und Links zu Ergebnisseiten erstellen.

Zusätzlich: Wenn Sie nur einen Artikel anzeigen möchten, verwenden Sie WHERE article_id = %d und nicht LIMIT 1.

eine weitere Sache: wenn Sie Reihe von gewünschten article_id Verwendung haben:

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

wo ID_LIST Komma getrennt id Listen nur implode(',', $ids_array)

0

Um alle Produkte wählen Sie Ihre SQL-Abfrage ändern könnte: SELECT * FROM products Wenn Sie etwas foreach sollte hinzufügen um jedes Produkt zu iterieren.

0

Ihre Produkte Abfrage hat Limit = 1, und Sie laden die ID Ihres Artikels, warum würde die ID gesendet anders sein?

Verwandte Themen