PHP mysql join tabellen
Code die ik nu al heb:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
$get_input = "
SELECT a.ean13, a.id_soort, a.id_framemaat, COUNT(*) AS amount
FROM shop_product_attribute p
JOIN Adcount_input a ON p.ean13 = a.ean13
GROUP BY a.ean13, a.id_soort, a.id_framemaat
";
$result_input = mysql_query($get_input) or die(mysql_error());
while($input_row = mysql_fetch_array($result_input)) {
echo 'ean13: '.$input_row['ean13'].
' | id_soort: '.$input_row['id_soort'].
' | id_framemaat: '.$input_row['id_framemaat'].
' | AMOUNT: '.$input_row['amount'].'<br />';
}
SELECT a.ean13, a.id_soort, a.id_framemaat, COUNT(*) AS amount
FROM shop_product_attribute p
JOIN Adcount_input a ON p.ean13 = a.ean13
GROUP BY a.ean13, a.id_soort, a.id_framemaat
";
$result_input = mysql_query($get_input) or die(mysql_error());
while($input_row = mysql_fetch_array($result_input)) {
echo 'ean13: '.$input_row['ean13'].
' | id_soort: '.$input_row['id_soort'].
' | id_framemaat: '.$input_row['id_framemaat'].
' | AMOUNT: '.$input_row['amount'].'<br />';
}
Het is de bedoeling dat shop_product_attribute_combination.id_attribute
gevonden wordt waar shop_product_attribute_combination.id_product_attribute = shop_product_attribute.id_product.
dan moet Adcount_Input geteld worden waar shop_product_attribute_combination.id_attribute = id_soort & id_framemaat.
Ik ben nog steeds aan het zoeken als je tips of advies heb mag je deze ook altijd posten misschien dat deze mij verder op weg helpen.
Overzichtje van tabbelen:
Toevoeging op 30/12/2014 20:50:34:
de code hieronder doet al een groot gedeelte van het werk, echter moet nog steeds de dames en heren fietsen gescheiden worden in de telling.
Nu moeten soort fietsen nog gescheiden worden van elkaar
iets zoals "pac.id_attribute LIKE i.id_soort" alleen wanneer ik dit doe krijg ik geen result.
is er een een andere manier ?
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$get_input = "
SELECT p.id_product, pac.id_attribute, pac.id_product_attribute, COUNT(*) AS amount
FROM shop_product_attribute AS p, shop_product_attribute_combination AS pac, Adcount_input AS i
WHERE pac.id_product_attribute = p.id_product_attribute AND pac.id_attribute LIKE i.id_framemaat
GROUP BY id_product_attribute
";
SELECT p.id_product, pac.id_attribute, pac.id_product_attribute, COUNT(*) AS amount
FROM shop_product_attribute AS p, shop_product_attribute_combination AS pac, Adcount_input AS i
WHERE pac.id_product_attribute = p.id_product_attribute AND pac.id_attribute LIKE i.id_framemaat
GROUP BY id_product_attribute
";
Kan je eens uitleggen waarom je buiten het Prestashop platform wilt werken?
Nu is het de bedoeling dat de voorraden in een externe database worden opgeslagen (Adcount_input) zodat deze kunnen worden ingeladen door prestashop, en dit zonder de core files van prestashop te wijzigen.
dus adcount_input is eigenlijk de tussen station tussen adcount en prestashop, adcount_input wordt dan ook bewerkt door php aangezien wij onze fietsen in geven onder soort: dames, heren, ... en maat 45cm , 50cm ,...
En niet volgens de id's die prestashop gebruikt.
Gewijzigd op 30/12/2014 23:30:54 door Jaimy A
Ik weet niet hoe het model van Prestashop in elkaar steekt (in de zin van waar en hoe attribuut soorten worden vastgesteld), maar het zal er op neer gaan komen dat je shop_product_attribute_combination meerdere malen moet gaan koppelen aan de attribuutsoort om een platte tabel te verkrijgen.
Overigens adviseer ik je om jezelf aan te leren ANSI joins te gebruiken.
Gewijzigd op 31/12/2014 13:20:18 door Ger van Steenderen