Hallo zusammen
Habe hier ein kleines Problem:
Eine Tabelle wie diese hier
product_id product_sku
2707 CLHKHE
2652 CLHKHE
2651 CLHKHE
2708 CLHKHE
2716 CLHKKO
2715 CLHKKO
2659 CLHKKO
2660 CLHKKO
2653 CLHKLA
2710 CLHKLA
2709 CLHKLA
2654 CLHKLA
Und benötige die Daten wie hier:
product_id product_sku_short related_products
2707 CLHKHE 2707|2652|2651|2708
2652 CLHKHE 2707|2652|2651|2708
2651 CLHKHE 2707|2652|2651|2708
2708 CLHKHE 2707|2652|2651|2708
2716 CLHKKO 2716|2715|2659|2660
2715 CLHKKO 2716|2715|2659|2660
2659 CLHKKO 2716|2715|2659|2660
2660 CLHKKO 2716|2715|2659|2660
2653 CLHKLA etc.
2710 CLHKLA
2709 CLHKLA
2654 CLHKLA
Für jeden Datensatz eines Blockes sollte die product_id in eine weitere Spalte eines Arrays geschrieben werden.
Habs schon mal während ein paar Stunden mit ner Abfrage versucht,
jedoch gibt diese nur von gewissen Zeilen die Werte aus.
SELECT product_id AS prd_id, LEFT(product_sku, 6) AS sku_short,
GROUP_CONCAT(product_id SEPARATOR '|') AS related_products
FROM products
GROUP BY sku_short
z.b.
2707 - CLHKHE - 2707|2652|2651|2708
2716 - CLHKKO - 2716|2715|2659|2660
etc.
Die zusammengezogenen Werte für die Datensätze 2652,2651,2708 und 2715,2659,2660 fehlen.
Nun habe ich mir gedacht, dass man dies anstelle der Abfrage vielleicht mit einem Array lösen könnte, nur leider komme ich damit auch nicht ganz klar:
Weiss jemand, wie man dieses Problem mit Arrays in PHP lösen könnte?
Habe es mal hiermit versucht aber es geht bestimmt viel eleganter zumal diese Lösung hier noch nicht funktioniert:
Code:
while ($zeile = mysql_fetch_array($product_qry)){
$sku_neu = substr($zeile['product_sku'], 0, 5);
$prod_id = $zeile['product_id'];
$sammelzeile = $sammelzeile .'|'. $prod_id;
$arr[$i][$prod_id] = $prod_id;
$arr[$i][$sammelzeile] = $sammelzeile;
?>
<tr>
<td nowrap><?=$zeile['product_id']?></td>
<td nowrap><?=$zeile['product_sku']?></td>
<td nowrap><?=substr($zeile['product_sku'], 0, 5)?></td>
<td nowrap><?=$arr[$i][$sammelzeile]?></td>
</tr>
<?php
}
Weiss da jemand Rat?
Danke für Eure Hilfe