csdn 無法上傳圖片,資料表結構圖片看百度知道吧
http://zhidao.baidu.com/question/1047510947746416459.html
這是我的資料表結構,PHP+MYSQL 。我想實現出迴圈這樣的效果
尺碼 顏色 圖案
36 紅色 印花
36 紅色 平板
36 白色 印花
36 白色 平板
36 黑色 印花
36 白色 平板
37 紅色 印花
37 紅色 平板
依次類推, 但是尺碼、顏色、圖案 並不是固定的,有可能 只有兩個 如
尺碼 顏色
36 紅色
36 白色
36 黑色
37 紅色
37 白色
。。。。。。 等
也有可能有4個 如 尺碼 、顏色、圖案、其它
這樣用表格的格式迴圈 要怎麼迴圈啊。。。我現在用FOR可以迴圈出來,但是只能是固定的,不能自由選擇。
回複討論(解決方案)
你的尺碼 、顏色、圖案 的值都是在一個欄位裡的嗎?用什麼分隔的?資料類型是什嗎?
看看這個測試例,你應該會知道怎麼做了
create temporary table a (`尺碼` varchar(10)) charset gbk;insert into a values (36),(37);create temporary table b (`顏色` varchar(10)) charset gbk;insert into b values ('紅'),('白'),('藍'),('黑');create temporary table c (`圖案` varchar(10)) charset gbk;insert into c values ('印花'),('平板');select * from a,b,c;
尺碼 顏色 圖案 36 紅 印花 37 紅 印花 36 紅 平板 37 紅 平板 36 白 印花 37 白 印花 36 白 平板 37 白 平板 36 藍 印花 37 藍 印花 36 藍 平板 37 藍 平板 36 黑 印花 37 黑 印花 36 黑 平板 37 黑 平板
針對每個產品,首先把有的列出來。
例如尺碼、顏色、圖案 則會有3個數組, size,color,pattern。
例如尺碼、顏色則只有兩個數組。
然後迴圈。
你的尺碼 、顏色、圖案 的值都是在一個欄位裡的嗎?用什麼分隔的?資料類型是什嗎?
尺碼 顏色 圖案 分別在三條記錄裡。比如 尺碼的所有值都在一個欄位裡 用 \n 分開的
針對每個產品,首先把有的列出來。
例如尺碼、顏色、圖案 則會有3個數組, size,color,pattern。
例如尺碼、顏色則只有兩個數組。
然後迴圈。
現在可以分為三個數組了,但是我就是不會迴圈啊
例
$ar = array( array( "A", "B", "C"), array("1", "2", "3", "4"), array("X", "Y", "Z"),);print_rDescartes($ar));function Descartes($d) { $r = array_pop($d); while($d) { $t = array(); $s = array_pop($d); if(! is_array($s)) $s = array($s); foreach($s as $x) { foreach($r as $y) $t[] = array_merge(array($x), is_array($y) ? $y : array($y)); } $r = $t; } return $r;}
例
$ar = array( array( "A", "B", "C"), array("1", "2", "3", "4"), array("X", "Y", "Z"),);print_rDescartes($ar));function Descartes($d) { $r = array_pop($d); while($d) { $t = array(); $s = array_pop($d); if(! is_array($s)) $s = array($s); foreach($s as $x) { foreach($r as $y) $t[] = array_merge(array($x), is_array($y) ? $y : array($y)); } $r = $t; } return $r;}
分都給您了。謝謝您幫了我