2016-01-13 44 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; 
}