PHP:Mysql列使用前缀数组进行爆炸

时间:2014-07-08 13:11:59

标签: php mysql arrays explode

我有一个mysql列爆炸方法

这是代码:

$barang2=mysql_query("select * from tbl_barang WHERE INDX=2");
while($c=mysql_fetch_array($barang2))    {              
    $result = "$c[DESKRIPSI]<br />";

    $rows = explode("#", $result);

    for($i = 0; $i < count($rows); $i++) {
        $temp   = explode(':', $rows[$i]);
        $IDK    = $temp[1];
        $ID    = array("ID Kategori : ","Kategori : ","Warna : ","Ukuran : ","B : ");



        //echo '<br />' . $ID . ' : ';
        echo $ID[0]. ' : '. $IDK[0] . '<br />';
        echo $ID[1]. ' : '. $IDK[1] . '<br />';
        echo $ID[2]. ' : '. $IDK[2] . '<br />';
        echo $ID[3]. ' : '. $IDK[3] . '<br />';
        echo $ID[4]. ' : '. $IDK[4] . '<br />';
    }
}

我在mysql上找到了与IDK:16#K:BAJU#W:HITAM#U:L#B:120G

类似的列

然后试图让它像

ID Kategori : 16
Kategori : BAJU
Warna : HITAM
Ukuran : L
B : 120G

但我不能像$IDK[0]那样调用偏移并加入第一个数组......

1 个答案:

答案 0 :(得分:0)

您似乎在表格的字段中有分隔的数据结构。这往往很难处理。

但如果你真的必须使用它,那么我认为你想要推出的东西可以这样做: -

$barang2=mysql_query("select * from tbl_barang WHERE INDX=2");
while($c=mysql_fetch_array($barang2))    
{              
    $fields = explode("#", $c[DESKRIPSI]);

    $ID = array("ID Kategori : "=>'',"Kategori : ">'',"Warna : ">'',"Ukuran : ">'',"B : ">'');
    foreach($fields AS $field_key=>$field_value)
    {
        $temp   = explode(':', $field_value);
        switch($temp[0])
        {
            case 'IDK':
                $ID["ID Kategori : "] = $temp[1];
                break;
            case 'K':
                $ID["Kategori : "] = $temp[1];
                break;
            case 'W':
                $ID["Warna : "] = $temp[1];
                break;
            case 'U':
                $ID["Ukuran : "] = $temp[1];
                break;
            case 'B':
                $ID["B : ">''] = $temp[1];
                break;
            default:
                // nothing
                break;
        }

        foreach($ID AS $key=>$value)
        {
            echo $key. $value . '<br />';
        }
    }
}

但最好重新设计数据库以避免问题。