Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Maleńki problem z wykresem
damianprz
post
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 26.08.2009
Skąd: Zamojsce

Ostrzeżenie: (0%)
-----


(IMG:http://images41.fotosik.pl/185/dcd2828ceae7e2a9m.jpg)
Pewien skrypt pewnego Pana generuje wykresy takie jak ten pierwszy wykres na screenie
Trzeba tylko w pewnym pliku podać odpowiednie dane
I tak ten pomarańczowy wykres miał zapodane takie coś:

  1. $pytanko="SELECT data.data FROM data
  2. INNER JOIN produkty ON (data.id=produkty.id_daty)
  3. WHERE produkty.id_towaru='2' ";
  4. $rezultat = mysql_query($pytanko)
  5. or die("Błąd zapytania");
  6. $ilejest = mysql_num_rows($rezultat);
  7.  
  8. $pytanko2="SELECT produkty.popyt FROM produkty
  9. INNER JOIN data ON (produkty.id_daty=data.id)
  10. WHERE produkty.id_towaru='2' ";
  11. $rezultat2 = mysql_query($pytanko2)
  12. or die("Błąd zapytania");
  13. $ilejest2 = mysql_num_rows($rezultat2);
  14.  
  15. $nazwy = mysql_fetch_array($rezultat);
  16. $wartosci = mysql_fetch_array($rezultat2);


Otrzymuje też wyniki:
  1. ilejest: 9
  2. ilejest2: 9


Moja struktura bazy danych wygląda następująco:
(chodzi o tabele data i produkty)
(IMG:http://images43.fotosik.pl/188/1182f918ccd3c00fm.jpg)

Jak widać w zapytaniu chcę pokazać jakoś popyty dla produktu akurat o Id=2
ale wyświetla mi tylko pierwszą datę i pierwszy popyt dla towaru id=2
W tabeli produkty mam 9 pozycji dla towaru o Id=2

id_daty ...id_towaru... popyt
1.......... 2 ............20
2 ..........2 ............25
3 ..........2 ............15
4 ..........2 ..............5
5 ..........2 ............15
6 ..........2 ............10
7 ..........2 ............15
8 ..........2 ............15
9 ..........2 ............15

Jak pokazać wszystkie daty i wszystkie popyty dla danego id towaru?

Ten post edytował damianprz 29.08.2009, 13:20:34
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Dobrze mówiłem... Przyjmujesz jako parametry 2 tablice. W pierwszej zapodajesz label dla wykresu a w drugiej wartości. Problem masz w tym, że wywalasz do tych tablic pojedyncze wywołanie mysql_fetch_array co jest błędem. Musisz wypełnić wpierw całą tablicę wartości i dat zanim zwrócisz ją do wykresu.czyli
  1. $query = mysql_query( 'SELECT d.data, p.popyt FROM produkty p LEFT JOIN data d ON p.id_daty=d.id WHERE p.id_towaru='.id_towaru );
  2. $daty= array();
  3. $wartosci = array();
  4. if( $query ) {
  5. while( $row = mysql_fetch_array( $query ) ) {
  6. $daty[] = $row['data'];
  7. $wartosci[] = $row['popyt'];
  8. }
  9. }
i dopiero po tym podawaj tablicę dat i wartości do wykresu jako parametry. Wykres jest prostym skryptem i nawet z GD nie korzysta. Zabezpieczenie pliku też jest mocno żartobliwe dla kogoś kto choć w podstawowej wersji zna PHP. Wystarczy tylko w konkretnym miejscu usunąć linijkę i zabezpieczenie "złamane". Błędem jaki robiłeś jest to, że mysql_fetch_* zwraca zawsze tylko jeden rekord z wyników, a nie wszystkie potrzebne, a skrypt wymaga wszystkich za jednym zamachem. Sam kiedyś zrobiłem identyczny skrypt koleżance, tyle że nie robił on wykresów, ale dane pobierał z zewnętrznego pliku i zapisywałem je w nim jako Array, który potem include'owałem. Ty i tak będziesz musiał jeszcze ten kod wyświetlający zaimplementować w swój kod. Tyle że przy Twojej wiedzy także z tym będziesz miał problem. Zamiast bowiem sam pomyśleć od razu lecisz z pytaniem na forum. Spróbuj wpierw sam rozgryźć. Jeśli nie wydumasz po dniu prób to może wtedy pytaj. Kompletnie nie rozumiesz bowiem php, co widać po tym temacie. Nie zerknąłeś nawet do pliku dane.inc.php, gdzie jak byk widać co jest potrzebne jako dane do wykresu i wystarczy tam tylko podmienić dane by zmienić wykres. Na razie to wygląda tak, że ja i ktoś z innego forum Ci dosłownie większość magisterki od strony kodu php zrobiłem. Dlatego zwracaj się z poważnymi problemami, a nie każdym jak leci bo nikt za Ciebie nie ma zamiaru jej zrobić. Także ja. Mogę pomagać do pewnego stopnia, ale póki co wygląda to tak, że rzucasz problem, czekasz na rozwiązanie, coś robisz (to się chwali akurat), ale jeśli przez pół godziny Ci nie idzie to lecisz zaraz z pytaniem tutaj. Czasem niepotrzebnie. Teraz zachciałeś mieć jeszcze wykres którego nie umiesz nawet danymi wypełnić w sposób prosty, choć wcale nie jest to trudne.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 22:16