Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] Raport z 3 Tabel - Drop Down Menu ..
Forum PHP.pl > Forum > Przedszkole
zozol
Witam po raz pierwszy i nie ukrywam, że jako nowicjusz w PHP będę wdzięczny za jakąkolwiek pomoc smile.gif
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, "\,");

?>




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 sad.gif
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ę smile.gif
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  smile.gif
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. rolleyes.gif
Jak ktoś potrzebuje wrzucę cały kod.
Czołem aarambo.gif
młodyphp
Proszę o cały kod.

Pozdrawiam
Cysiaczek
Kod czego? Zapytania?

Proszę, np. tak:
  1. $sql="INSERT INTO tabela (item, company, date) VALUES ('$item', '$company', NOW())";


Pozdrawiam.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.