2014-07-08 77 views
-1

我有一个MySQL的列爆炸方法PHP的: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 

但我不能拨打像偏移量3210并加入第一个数组...

+1

停止使用'mysql_'函数,因为它们已被弃用。切换到'mysqli_'或'PDO'。 (与主题一起)。 '$ result'没有行,它是一个数组。这里不需要for循环。 –

+0

我尝试单个回声像'echo $ ID。 ':'。 $ IDK。 '
';''但是'$ ID'没有出现在我的每一个数组中...... – user3816415

回答

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

但它会更好地重新设计你的数据库,以避免问题第一名。

+0

它变成了多个'$ key'和'$ value'并且回显一个随机数:( – user3816415