2016-01-13 84 views
2

我的mysql表中有兩列pro_idpro_page。每列包含用逗號分隔的整數值。結合mysql的值用逗號分隔使用爆炸

例如,

pro_id  pro_page 
-------- ------------ 
1,2,3  1,1,1 
    2   1 
    3,4   2,1 

欲第一整數值從pro_id和第一整數值從pro_page,第二整數值從pro_id和第二整數值從pro_page等結合起來。

例如,

從第一行,結果應該是11 21 31

從第二行,結果應該是21

從第三行,結果應該是32 41

我曾嘗試使用下面的代碼,

$query = "SELECT pro_id, pro_page from tbl_checkout"; 
$result = mysqli_query($c,$query)or die(mysqli_error($c)); 
$length = mysqli_num_rows($result); 
while($row = mysqli_fetch_array($result1)) 
{ 
    $pro_id[] = $row["pro_id"]; 
    $pro_page[] = $row['pro_page']; 
} 

for($i=0; $i<$length1; $i++) 
{ 
    $pro_id = explode(",", @$pro_id[$i]); 
    $pro_page = explode(",", @$pro_page[$i]); 

    foreach($pro_id as $product_id) { 
     $product_id = $product_id; 
     echo $product_id; 
    } 
    foreach($pro_page as $product_page) { 
     echo $product_page; 
    } 
} 

現在結果LT是,

從第一行,123111

從第二排

,21

從第三排

,3421

有沒有什麼方法可以達到我想要的東西。我嘗試了很多。

+0

你檢查了答案嗎? –

回答

1

您可以通過單一foreach做,如果你的數字量是在兩個數組

$products = explode(",", @$pro_id[$i]); 
$pages = explode(",", @$pro_page[$i]); 

foreach($products as $k => $product_id){ 

    $product_page = $pages[$k]; 
    echo $product_id . $product_page . " "; 
} 
+0

不能作爲'$ pro_id [] = $ row [「pro_id」]'和'$ pro_id = explode(「,」,@ $ pro_id [$ i]);'會搞砸。 – maxhb

+0

@mexhb同意更新 – Armen

1

您必須一次循環兩個數組。使用for()時最簡單的:

$query = "SELECT pro_id, pro_page from tbl_checkout"; 
$result = mysqli_query($c,$query)or die(mysqli_error($c)); 
$length = mysqli_num_rows($result); 
while($row = mysqli_fetch_array($result1)) 
{ 
    $pro_id[] = $row["pro_id"]; 
    $pro_page[] = $row['pro_page']; 
} 

for($i=0; $i<$length1; $i++) 
{ 
    // don't assign to $pro_id and $pro_page as variable name: it will mess up your data! 
    $tmp_id = explode(",", $pro_id[$i]); 
    $tmp_page = explode(",", $pro_page[$i]); 

    for($c=0; $c < count($tmp_id)) { 
     echo $tmp_id[$c]; 
     echo $tmp_page[$c]; 
    } 
} 

另一個problerm是您使用$pro_id$pro_page兩種不同的目的。您可以使用它來存儲分析結果以存儲此數據中的分解數字。使用不同的變量名稱。

1

試試下面的代碼相同:

$query = "SELECT pro_id, pro_page from tbl_checkout"; 
$result = mysqli_query($c,$query)or die(mysqli_error($c)); 
$length = mysqli_num_rows($result); 
while($row = mysqli_fetch_array($result1)) 
{ 
    $pro_id[] = $row["pro_id"]; 
    $pro_page[] = $row['pro_page']; 
} 

for($i=0; $i<$length1; $i++){ 
    $pro_id = explode(",", @$pro_id[$i]); 
    $pro_page = explode(",", @$pro_page[$i]); 

    $newProduct_id = ''; 
    foreach($pro_id AS $keyIndex => $product_id) { 
     $newProduct_id = $pro_id[$keyIndex] . $pro_page[$keyIndex] . " "; 
     echo $newProduct_id; 
    } 
} 
3

獲取從數據庫中排列後執行以下操作:

$output = array(); 
while($row = mysqli_fetch_array($result1)) 
{ 
    $pro_id = explode(',' , $row["pro_id"]); 
    $pro_page = explode(',' , $row['pro_page']); 
    for($i = 0; $i< count($pro_id); $i++) 
    { 
     $output[$i] = $pro_id[$i] . $pro_page[$i]; 
    } 
    return $output; 
}