Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Sortowanie wedlug daty i grupowanie
Forum PHP.pl > Forum > Przedszkole
dawids2411
Wiec moze na pocatek standardowo kod

  1. <?php
  2.  
  3. session_start(); // rozpoczynamy sesję
  4. require_once('config.php');
  5. /* zapytanie do konkretnej tabeli */
  6. $wynik = mysql_query("SELECT * FROM sprzedaz")
  7. or die('Błąd zapytania');
  8.  
  9. $kat = mysql_query ('SELECT `data` FROM `sprzedaz` GROUP BY data WHERE DATE_FORMAT(`data`, '%Y-%m') ORDER BY `data` ASC');
  10.  
  11. /* $kat = mysql_query ('SELECT DATE_FORMAT(`data`, '%Y-%m') FROM `sprzedaz` GROUP BY `data` ASC'); */
  12.  
  13. while ( $rkat = mysql_fetch_array ( $kat, MYSQL_ASSOC )) {
  14.  
  15.  
  16. $w_kat .= '<option value = "'.$rkat['data'].'">'.$rkat['data'].'</option>'."\n";
  17.  
  18. $w_id .= $rkat['data'];
  19.  
  20. }
  21. echo '<form action="sprzedane.php" method="POST">';
  22. echo'Wybierz date: ';
  23. echo "<select name=\"kategoria1\">";
  24. echo '<option>'.$w_kat.'</option>';
  25. echo '</select><br />';
  26. echo '<input type=submit name="wyslij" value="Wyslij"/>';
  27. echo '</form>';
  28.  
  29. $dzien0=date("d");
  30. $miesiac0=date("m");
  31. $rok0=date("Y");
  32. echo "<br />";
  33. echo "Aktualna data: ". " " . $rok0 . "." . $miesiac0 . "." . $dzien0 ;
  34. echo "<br />";
  35.  
  36. $wynik = mysql_query('SELECT * FROM sprzedaz WHERE data = "'.$_POST['kategoria1'].'" ')
  37. /*
  38. wyświetlamy wyniki, sprawdzamy,
  39. czy zapytanie zwróciło wartość większą od 0
  40. */
  41. if(mysql_num_rows($wynik) > 0) {
  42. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  43. echo "<table cellpadding=\"2\" border=1>";
  44. echo "<tr>";
  45. echo "<td bgcolor=#ff8000>"."ID"."</td>";
  46. echo "<td bgcolor=#ff8000>"."kategoria"."</td>";
  47. echo "<td bgcolor=#ff8000>"."Nazwa"."</td>";
  48. echo "<td bgcolor=#ff8000>"."Cena Zakupu"."</td>";
  49. echo "<td bgcolor=#ff8000>"."Cena Sprzedazy"."</td>";
  50. echo "<td bgcolor=#ff8000>"."Data sprzedazy"."</td>";
  51. echo "<td bgcolor=#ff8000>"."Zysk"."</td>";
  52.  
  53.  
  54. echo "</tr>";
  55. while($p = mysql_fetch_assoc($wynik))
  56. {
  57.  
  58.  
  59. echo "<tr>";
  60.  
  61. echo "<td>".$p['id']."</td>";
  62. echo "<td>".$p['kategoria']."</td>";
  63. echo "<td>".$p['nazwa_zakupu']."</td>";
  64. echo "<td>".$p['id_zakupu']."</td>";
  65. echo "<td>".$p['cena_sprzedazy']."</td>";
  66. echo "<td>".$p['data']."</td>";
  67. echo "<td>".$p['zysk']."</td>";
  68. echo "</tr>";
  69. }
  70. echo "</table>";
  71.  
  72.  
  73.  
  74. }
  75.  
  76.  
  77.  
  78. ?>


Z listy rozwijanej wybieram date i na podstawie daty generuje mi się tabelka

Wszystko pięknie dziala tylko ze z rozwijanej listy pokazuje mi sie rok, miesiac i dzien a chcialbym to zrobic aby mozna bylo wybierac rok i miesiac

Probowalem wielu zapytan do bazy ale nic z tego

chcialbym zeby wszystkie dni z danego misiaca sie wyswietlily w generowanej tabeli..
wiecie o co chodzi
wNogachSpisz
Na początek poczyń separację php od html. Tylko masochiście będzie się chciało wczytywać w ten burdel.
mmmmmmm
Zapytanie z linii 10 nie ma prawa działać zgodnie z ANSI SQL 92.
dawids2411
  1. <?php
  2.  
  3. session_start(); // rozpoczynamy sesję
  4. require_once('config.php');
  5. /* zapytanie do konkretnej tabeli */
  6. $wynik = mysql_query("SELECT * FROM sprzedaz")
  7. or die('Błąd zapytania');
  8.  
  9. $kat = mysql_query ('SELECT `data` FROM `sprzedaz` GROUP BY data WHERE DATE_FORMAT(`data`, '%Y-%m') ORDER BY `data` ASC');
  10.  
  11. /* $kat = mysql_query ('SELECT `data` FROM `sprzedaz` GROUP BY `data` ASC'); */
  12.  
  13. while ( $rkat = mysql_fetch_array ( $kat, MYSQL_ASSOC )) {
  14.  
  15.  
  16. $w_kat .= '<option value = "'.$rkat['data'].'">'.$rkat['data'].'</option>'."\n";
  17.  
  18. $w_id .= $rkat['data'];
  19.  
  20. }
  21. echo '<form action="sprzedane.php" method="POST">';
  22. echo'Wybierz date: ';
  23. echo "<select name=\"kategoria1\">";
  24. echo '<option>'.$w_kat.'</option>';
  25. echo '</select><br />';
  26. echo '<input type=submit name="wyslij" value="Wyslij"/>';
  27. echo '</form>';
  28.  
  29. $dzien0=date("d");
  30. $miesiac0=date("m");
  31. $rok0=date("Y");
  32. echo "<br />";
  33. echo "Aktualna data: ". " " . $rok0 . "." . $miesiac0 . "." . $dzien0 ;
  34. echo "<br />";
  35.  
  36. $wynik = mysql_query('SELECT * FROM sprzedaz WHERE data = "'.$_POST['kategoria1'].'" ')
  37. /*
  38.   wyświetlamy wyniki, sprawdzamy,
  39.   czy zapytanie zwróciło wartość większą od 0
  40.   */
  41. if(mysql_num_rows($wynik) > 0) {
  42. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  43. echo "<table cellpadding=\"2\" border=1>";
  44. echo "<tr>";
  45. echo "<td bgcolor=#ff8000>"."ID"."</td>";
  46. echo "<td bgcolor=#ff8000>"."kategoria"."</td>";
  47. echo "<td bgcolor=#ff8000>"."Nazwa"."</td>";
  48. echo "<td bgcolor=#ff8000>"."Cena Zakupu"."</td>";
  49. echo "<td bgcolor=#ff8000>"."Cena Sprzedazy"."</td>";
  50. echo "<td bgcolor=#ff8000>"."Data sprzedazy"."</td>";
  51. echo "<td bgcolor=#ff8000>"."Zysk"."</td>";
  52.  
  53.  
  54. echo "</tr>";
  55. while($p = mysql_fetch_assoc($wynik))
  56. {
  57.  
  58.  
  59. echo "<tr>";
  60.  
  61. echo "<td>".$p['id']."</td>";
  62. echo "<td>".$p['kategoria']."</td>";
  63. echo "<td>".$p['nazwa_zakupu']."</td>";
  64. echo "<td>".$p['id_zakupu']."</td>";
  65. echo "<td>".$p['cena_sprzedazy']."</td>";
  66. echo "<td>".$p['data']."</td>";
  67. echo "<td>".$p['zysk']."</td>";
  68. echo "</tr>";
  69. }
  70. echo "</table>";
  71.  
  72.  
  73.  
  74. }
  75.  
  76.  
  77.  
  78. ?>


Tez nie dziala Moze wystarczy w lini 10 ulozyc dobre zapytanie do sqla
mmmmmmm
Masz coś pomieszane z polami `data` i `kategoria`.
Wybór wszystkich kategorii występujących w tabeli sprzedaż:
  1. $kat = mysql_query ('SELECT DISTINCT `kategoria` `data` FROM `sprzedaz` ORDER BY 1 ASC');

lub
  1. $kat = mysql_query ('SELECT `kategoria` `data` FROM `sprzedaz` GROUP BY 1 ORDER BY 1 ASC');

To wstaw zamiast linii 10.
W linii 25 masz za dużo '<option>' i '</option>'. Po wstawieni zmiennej html będzie wyglądał tak:
<option><option>...</option></option>
a to jest źle.
Linię 37 zamień na:
  1. $wynik = mysql_query('SELECT * FROM sprzedaz'.(isset($_POST['kategoria1'])?' WHERE `kategoria`="'.$_POST['kategoria1'].'"':'')');
dawids2411
Nie dziala ale przerobilem skrypt zeby bylo latwiej

Wyswietla on teraz tylko sprzedanych produktow i zysk ale nadal w liscie rozwijanej mam kazdy dzien z miesiaca a chcialbym zeby wszystkie dni z miesiaca mi sie zgrupowaly do 1 miesiaca i w lisie rozwijanej wyswietlal mi sie tylko rok i miesiac


  1. <?php
  2.  
  3.  
  4. session_start(); // rozpoczynamy sesję
  5. require_once('config.php');
  6. /* zapytanie do konkretnej tabeli */
  7.  
  8. $dzien0=date("d");
  9. $miesiac0=date("m");
  10. $rok0=date("Y");
  11. echo "<br />";
  12. echo "Aktualna data: ". " " . $rok0 . "." . $miesiac0 . "." . $dzien0 ;
  13. echo "<br />";
  14. echo "<br />";
  15. $kat = mysql_query ('SELECT * FROM `sprzedaz` GROUP BY `data` ORDER BY `data` ASC');
  16.  
  17. while ( $rkat = mysql_fetch_array ( $kat, MYSQL_ASSOC )) {
  18.  
  19.  
  20. $w_kat .= '<option value = "'.$rkat['data'].'">'.$rkat['data'].'</option>'."\n";
  21.  
  22. $w_id .= $rkat['data'];
  23.  
  24. }
  25. echo '<form action="zysk.php" method="POST">';
  26. echo'Wybierz date: ';
  27. echo "<select name=\"kategoria1\">";
  28. echo '<option>'.$w_kat.'</option>';
  29. echo '</select><br />';
  30. echo '<input type=submit name="wyslij" value="Wyslij"/>';
  31. echo '</form>';
  32. echo "$_wkat";
  33.  
  34.  
  35.  
  36. $p = $_POST['kategoria1'];
  37. //sumowanie wartosci rekordow o id_kategorie = 10
  38.  
  39. $query = ('SELECT ROUND(SUM(zysk), 2) AS suma FROM sprzedaz WHERE `data` = "'.$p.'" ');
  40. echo "$_wkat";
  41. //$query= 'SELECT ROUND(SUM(cena_zakupu), 2) AS suma,id_kategorie FROM zakup GROUP BY id_kategorie';
  42. $result = mysql_query($query);
  43. $zi = mysql_result($result, 0);
  44.  
  45. echo "<tr>";
  46. echo "<td>" . "Zysk ze sprzedazy produktow" . "</td>";
  47. echo "<td bgcolor=#ff8000>" . "$zi"."</td>";
  48. echo "</tr>";
  49. // sumowanie wszystkich rekordow o id_kategorie = 10
  50. $query2='SELECT COUNT(*) AS id FROM sprzedaz WHERE `data` = "'.$p.'"';
  51. $result2 = mysql_query($query2);
  52. $z2 = mysql_result($result2, 0);
  53. echo "<tr>";
  54. echo "<td>" . " Sprzedanych produktow: " . "</td>";
  55. echo "<td bgcolor=#ff8000>" . "$z2"."</td>";
  56. echo "</tr>";
  57. ?>


Fajnie zalozylem ostatni mi czasy chyba z 5 tematów i ani razu nikt mi nie pomógl ;/ po czasie dochodzilem sam do rozwiazan a niby taka podstawa tego php ZAL
djgarsi
Jeśli czekasz na gotowce to nie znajdziesz ich w tym dziale.
PS. Widzisz jaki inteligentny jesteś skoro sam do rozwiązania doszedłeś.
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.