【问题标题】:PHP: Mysql column explode with prefix arrayPHP:Mysql 列以前缀数组爆炸
【发布时间】:2014-07-08 13:11:59
【问题描述】:

我有一个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] 这样调用偏移量并加入第一个数组...

【问题讨论】:

  • 停止使用 mysql_ 函数,因为它们已被弃用。切换到mysqli_PDO。 (配合主题)。 $result 没有行,它是一个数组。这里不需要 for 循环。
  • 我尝试像echo $ID . ' : '. $IDK . '&lt;br /&gt;'; 这样的单个回声,但$ID 并没有出现在我的每个数组中......

标签: php mysql arrays explode


【解决方案1】:

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

但如果你真的必须使用它,那么我认为你想要发布的内容可以这样完成:-

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

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

【讨论】:

  • 它变成了多个$key$value并回显一个随机数:(
猜你喜欢
  • 1970-01-01
  • 2020-08-31
  • 1970-01-01
  • 2021-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-26
相关资源
最近更新 更多