
Kod poniżej przedstawia skrypt raportu dający w wyniku ilość danego produktu zakupionego przez klienta w danym okresie czasu. Cala idea polega na tym, żeby inne osoby były w stanie przygotować podobny raport na stronie. Na chwilę obecną przygotowuję strukturę SELECT w PHP MyAdmin i wrzucam do php a następnie na stronę co daje w wyniku niestety jedynie predefiniowany wynik na podtsawie np nazwy firmy `company` bądz daty `date_added`
CODE
$zapytanie = 'SELECT `company` , `order_item_sku` , `date_added` , `order_item_name` , SUM( `product_quantity` ) '
. ' FROM `order_item` , `order_user_info` , `order_history`'
. ' WHERE ('
. ' order_item.order_id = order_user_info.order_id'
. ' )'
. ' AND ( order_user_info.order_id = order_history.order_id )'
. ' AND `order_item_sku` LIKE \'DO6PPFRD\''
. ' GROUP BY `date_added` '
. ' LIMIT 0 , 30 ';
$zapytaniesumy = 'SELECT sum( `product_quantity` ) '
. ' FROM `order_item` '
. ' WHERE `order_item_sku` LIKE \'DO6PPFRD\'';
$wykonaj = mysql_query($zapytanie);
echo '';
while($wiersz = mysql_fetch_array($wykonaj))
{
echo '<STRONG><FONT face="Arial, Helvetica, sans-serif">',''.$wiersz['company'].'';
echo ''.$wiersz['order_item_sku'].'';
echo ''.$wiersz['date_added'].'';
echo ''.$wiersz['order_item_name'].'';
echo ''.$wiersz['SUM( `product_quantity` )'].'';
}
echo '';
$pokazsume = mysql_query($zapytaniesumy);
echo '';
while($wiersz1 = mysql_fetch_array($pokazsume))
{
echo '<STRONG><FONT face="Geneva, Arial, sans-serif">',''.$wiersz['company'].'';
echo ''.$wiersz['order_item_sku'].'';
echo ''.$wiersz['date_added'].'';
echo ''.$wiersz['order_item_name'].'';
echo 'TOTAL: '.$wiersz1['sum( `product_quantity` )'].'';
}
echo '';
?>
function prepareCSV($aData, $sSeparator)
{
$aCSV = array();
foreach($aData as $aRow) {
$aCSV[] = implode($sSeparator, $aRow);
}
return implode("\n", $aCSV);
}
?>
$aTransakcje = array();
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=" . date("Y-m-d").".xls");
header("Pragma: no-cache");
echo prepareCSV($aTransakcje, "\,");
?>
. ' FROM `order_item` , `order_user_info` , `order_history`'
. ' WHERE ('
. ' order_item.order_id = order_user_info.order_id'
. ' )'
. ' AND ( order_user_info.order_id = order_history.order_id )'
. ' AND `order_item_sku` LIKE \'DO6PPFRD\''
. ' GROUP BY `date_added` '
. ' LIMIT 0 , 30 ';
$zapytaniesumy = 'SELECT sum( `product_quantity` ) '
. ' FROM `order_item` '
. ' WHERE `order_item_sku` LIKE \'DO6PPFRD\'';
$wykonaj = mysql_query($zapytanie);
echo '';
while($wiersz = mysql_fetch_array($wykonaj))
{
echo '<STRONG><FONT face="Arial, Helvetica, sans-serif">',''.$wiersz['company'].'';
echo ''.$wiersz['order_item_sku'].'';
echo ''.$wiersz['date_added'].'';
echo ''.$wiersz['order_item_name'].'';
echo ''.$wiersz['SUM( `product_quantity` )'].'';
}
echo '';
$pokazsume = mysql_query($zapytaniesumy);
echo '';
while($wiersz1 = mysql_fetch_array($pokazsume))
{
echo '<STRONG><FONT face="Geneva, Arial, sans-serif">',''.$wiersz['company'].'';
echo ''.$wiersz['order_item_sku'].'';
echo ''.$wiersz['date_added'].'';
echo ''.$wiersz['order_item_name'].'';
echo 'TOTAL: '.$wiersz1['sum( `product_quantity` )'].'';
}
echo '';
?>
function prepareCSV($aData, $sSeparator)
{
$aCSV = array();
foreach($aData as $aRow) {
$aCSV[] = implode($sSeparator, $aRow);
}
return implode("\n", $aCSV);
}
?>
$aTransakcje = array();
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=" . date("Y-m-d").".xls");
header("Pragma: no-cache");
echo prepareCSV($aTransakcje, "\,");
?>
Wiem, że na pewno da się przygotować zmienne zapytanie do bazy czyli SELECT na podstawie np 3 rozwijanych menu - menu 1 wybór `company`- menu 2 wybór `order_item_sku` menu 3 wybór `date_added`
Wiem, że spewnością się da to zrobić lecz niestety nie mam specjalnie pojęcia jak

Z góry dziękuję za pomoc i pozdrawiam.
Czesć i czołem ponownie:)
Rozwijane menu do select to był kiepski pomysł.
Doszedłem do rozwiązania problemu, więc odpowiem sam sobie i mam nadzieję komuś przy okazji ułatwię życie jeśli będzie miał podobną zagwozdkę

Należy do pól z tabel np `company` przypisać zmienną np $company
następnie definiujemy zmienną $company = $_POST['company']; czyli jej wartość będzie uzyskiwana metodą POST z formularza w zwykłym HTML.
Pozostaje zmajstrować formularz z kodem jak poniżej i gotowe.
<form action="adres skryptu php" method="post">
<p>
<br>
Wprowadz kod produktu </p>
<p>
<input name="product" type="text" size="20">
<br>
<br>
<input type="submit" value="Zatwierdź">
</p>
Jeżli potrzebujemy dodatkowe pola dodajemy i definiujemy dodatkowe zmienne w kodzie PHP i dodajemy w formularzy HTML dodatkowe analogiczne pola.I tak podstawa to zapytanie do bazy
więc SELECT powinien mieć ręce i nogi

Wiem, że metoda prosta jak barszcz ale jako żółtodziób dopiero na nią wpadłem.
W praktyce wykorzystana jest jako raport zamówień generowany bezpośrednio do excela i na podstawie tej małej zmiany może go robić każdy definiujac np klienta produkt datę itp.
Mam nadzieję że komuś się przydadzą moje bazgroły.

Jak ktoś potrzebuje wrzucę cały kod.
Czołem
