2014-04-22 81 views
0

我有一個代碼,我想從數組中顯示產品列表。 我從n個品牌的數組中獲得1000個產品.n可以是1,2,3..etc。 我想顯示從明年2品牌產品之一,品牌再從第二個品牌2個產品,然後2等等吧,同時顯示應反覆..按品牌逐個顯示產品陣列

Homepage.php

<html> 
<head> 
<title>Insert title here</title> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
<style type="text/css"> 
#image{ 
width:250px; 
height:250px; 
border:1px solid black; 
} 
</style> 
</head> 
<body> 

<script type="text/javascript"> 
    function get_check_value() { 
     var c_value = []; 

     $('input[name="brand"]:checked').each(function() { 
      c_value.push(this.value); 
     }); 
     return c_value.join(','); 

    } 
    function get_disc_value(){ 
    var d_value=[]; 
     $('input[name="discount"]:checked').each(function() { 
      d_value.push(this.value); 
     }); 
     return d_value.join(','); 
     } 

    $(document).ready(function(){ 
    checkboxValidate = function (e) { 
    if(e)e.preventDefault(); 
    //alert("hi"); 
     //var os = $('#originState').val(); 
     //var c = $('#commodity').val(); 
     //var ds = $('#destState').val(); 
     var ser = get_check_value(); 
     var disc=get_disc_value(); 
     //var queryString = "os=" + os; 
     var data = "?ser=" + ser; 
     var queryString = "&ser=" + ser; 
     // alert(ser); 
     $.ajax({ 
     //alert("ajax"); 
     type: "POST", 
     url: "sortingajax.php", 
     data: {ser:ser,disc:disc}, 
     dataType : 'html', 
     success: function (b) { 
      // alert(a+' ok. '+b) 
      $('#results').html(b); 
      console.log(b); 
     } 
    }); 

    } 
    $("[type=checkbox]").change(checkboxValidate); 

    checkboxValidate(); 
}); 
</script> 


brand 
    <input type="checkbox" name="brand" value="Sunbaby" id="check" />Sunbaby 
    <br/> 
    <input type="checkbox" name="brand" value="Advance Baby" id="check"/>Advance Baby 
    <br/> 
    store 
    <br/> 
    <input type="checkbox" name="discount" value="10" />10 
    <br/> 
    <input type="checkbox" name="discount" value="20" />20 
    <br/> 
    <input type="checkbox" name="discount" value="30" />30 
    <br/> 


<button id="btnSubmit">sort</button> 
<div id="image"> 
<img src="http://img5a.flixcart.com/image/sunglass/4/u/y/mb-d4-09b-miami-blues-free-size-275x275-imadzkhuchryqjgp.jpeg" width="250px" height="250px"/> 
</div> 
<div id="results"> 
sdfsdfsdfsdfdsfgsdgsbsfgvf 
</div> 
</body> 
</html> 

sortingajax.php

<?php 

include('connection.php'); 
$query=$_POST['ser']; 

$query2=$_POST['disc']; 


$query=explode(",",$query); 
$query = array_filter($query); 
$query2=explode(",",$query2); 
$query2 = array_filter($query2); 
$result=count($query); 
$result1=count($query1); 
//echo $result; 
echo $query; 
echo $query1; 
echo $result1; 
$parts = array(); 
$brandarray=array(); 
$discarray=array(); 
$limit = 10; 
    $offset = 0; 
    foreach($query as $queryword){ 
    $brandarray[] = '`BRAND` LIKE "%'.$queryword.'%"'; 

} 
foreach($query2 as $discword){ 
    $discarray[] = '`DPERCENT` < "'.$discword.'"'; 

} 
「/>

我想先展示一個品牌的2個產品,然後是來自下一個品牌的2個產品。但是根據上述代碼,它顯示了來自一個品牌的所有產品,然後顯示了來自下一個品牌的所有產品....請指導我如何改變上面的代碼產品上榜品牌的品牌..

+0

大多數人不會只是調試你的代碼,嘗試專注於你面臨的問題。 [sscce](http://www.sscce.org/) –

+0

@ MichaelKunst-我想以這樣一種方式展示產品,從1000個陣列產品中選擇一個從第二個品牌第二個品牌第三個品牌第三個品牌,然後重複它。但即時通訊無法做到這一點與上述code.its沒有顯示任何錯誤,我只想讓我的代碼改變了一些幫助 – user3545382

回答

0

如果插入彥博在MySQL查詢,這樣你會馬上看到砍死瓦爾:

'`BRAND` LIKE "%'.$queryword.'%"'; 
+0

我沒有被黑客手段。詳細指導@ user2780675 – user3545382

+0

他的意思是,你需要檢查在嘗試針對數據庫執行它之前,您的惡意代碼數據。 Google SQL Injection瞭解更多信息。此外,這裏是一個[堆棧溢出問題](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)有人問如何對這些類型安全的攻擊。編程的黃金法則是永遠不會相信用戶提供的輸入。在做任何事情之前,你總是要檢查它以確保它是安全的。 – Quixrick

+0

K.So如果我使用GET代替POST,那會好嗎?或者我需要改變什麼 – user3545382

0

基於代碼的快速瀏覽,你似乎是將每個產品的第一個元素添加到數組中,然後添加第二個元素,然後第三個等等,直到您達到最高數量。

嘗試改爲首先將最大值限制爲僅爲2而不是最大值(因此在這種情況下,最高位數應爲= 2) 第二,添加1個品牌,然後下一個然後是下一個,而不是一次全部,因爲除非你正在處理它,否則會以其他方式交錯每個品牌。我不知道如果那是你想要的?

對此有幫助嗎?

0

我花了一點時間看你的代碼,我不完全確定它是如何工作的。似乎有一個更簡單的方法來做到這一點。你能啓動一個櫃檯,並在你的循環一旦到達櫃檯後切斷它?

$i = 0; 
$all_products = array(); 

while($row = mysql_fetch_array($firstsql3)) { 

    if (++$i <= 2) { 

     // DO YOUR STUFF HERE 
     $product_name = $row['product_name']; // GET THE PRODUCT NAME FROM THE DB 
     $product_color = $row['product_color']; 
     $product_size = $row['product_size']; 

     $individual_product_array = array(); // CREATE A NEW ARRAY FOR THIS PRODUCT 
     $individual_product_array['color'] = $product_color; 
     $individual_product_array['size'] = $product_size; 

     $all_products[$product_name][] = $individual_product_array; 

    } 

} 
+0

我編輯我的代碼根據您的代碼,可能是你的代碼可以破解它,但仍然是遠離它。請檢查我編輯過的帖子,我認爲我已經錯誤地選擇了我們的代碼...請檢查 – user3545382

+0

我看到你做了一個編輯,但你刪除了適用的部分代碼。無論如何,你將無法將我的代碼放入你的代碼中。我做了一個例子,因爲我不完全理解你的代碼是如何工作的。你需要理解我試圖展示的內容。對不起,如果我對此感到困惑。基本上,你可以根據計數器來限制結果的數量。在零開始計數器。 '$ i = 0;'。然後,每次循環查詢'while($ row = ...',增加計數器並檢查它是否小於或等於2.'if(++ $ 1 <= 2){' – Quixrick

+0

Meet我在[collabedit](http://collabedit.com/7xj2e) – Quixrick