Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql]porównywanie liczb z kilku tabel
MaximusDM
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 14.04.2005

Ostrzeżenie: (10%)
X----


Proszę Was o pomoc w rozwiązaniu problemu...

Mam 3 tabele z rekordami tekstowymi np. +3,58.
I teraz chce aby nastąpiło porównanie wartości w tabelach od jeden do trzy. Jeżeli w tabelach będzie tendencja wzrostowa to wyświetli komunikat rośnie. Na razie mam coś takiego, czy dobrym tropem idę?

  1. <?php
  2. $query1 = "SELECT 1 FROM tab1"; 
  3. $result1 = mysql_query($query1); 
  4.  
  5. $query2 = "SELECT 1 FROM tab2"; 
  6. $result2 = mysql_query($query2); 
  7.  
  8. $query3 = "SELECT 1 FROM tab3"; 
  9. $result3 = mysql_query($query3); 
  10.  
  11. if ($result2>$result1) and ($result3>$result2) 
  12. {
  13. print "<bgcolor=green>rośnie";
  14. }
  15.  
  16. else 
  17. { 
  18. print("<bgcolor=red>bez zmian"); 
  19. }
  20. ?>
Go to the top of the page
+Quote Post
Cezar708
post
Post #2





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


złym...

po pierwsze
  1. SELECT 1 FROM tab1
pobierze Ci tyle razy liczbę 1 ile jest wierszy w tablicy tab1 (oczywiście analogicznie do tab2, tab3), myślę, że w Twoim przypadku lepiej byłoby użyć
  1. SELECT nazwaKolumnyKtoraChceszSprawdzic FROM tab1 WHERE twojeKryterium

lub ewentualnie
  1. SELECT nazwaKolumnyKtoraChceszSprawdzic FROM tab1 LIMIT 1


po drugie
tu jest błąd składni:
  1. <?php
  2. if ($result2>$result1 and $result3>$result2) // dobrze
  3.  
  4. if ($result2>$result1) and ($result3>$result2) // źle
  5. ?>


po trzecie
  1. <?php
  2. $result1 = mysql_query($query1);
  3. ?>

wynikiem jest rezultat zapytania, który jeszcze trzeba obrobić, czyli pobrać jego wartość poprzez np mysql_fetch_row( $result1 ) a potem użyć to do porównania

  1. <?php
  2. $row1 = mysql_fetch_row( $result1 );
  3. $row2 = mysql_fetch_row( $result2 );
  4. $row3 = mysql_fetch_row( $result3 );
  5.  
  6. if ($row2[0]>$row1[0] and $row3[0]>$row2[0]){
  7. print "<bgcolor=green>rośnie";
  8. }
  9.  
  10. else 
  11. { 
  12. print("<bgcolor=red>bez zmian"); 
  13. }
  14. ?>


Pozdrawiam
Go to the top of the page
+Quote Post
MaximusDM
post
Post #3





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 14.04.2005

Ostrzeżenie: (10%)
X----


1 to wartość pola-kolumny każda kolumna będzie miała tylko jedną wartość ponieważ dane wprowadzane są poleceniem update. a jk dołożyć do funkcji warunek, aby wskazywał, że rośnie dopiero gdy między 1,2 i 3 tabelą będzie różnica np. 2,50?
Go to the top of the page
+Quote Post

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: 28.09.2025 - 13:41