Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql]porównywanie liczb z kilku tabel
Forum PHP.pl > Forum > PHP
MaximusDM
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. ?>
Cezar708
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
MaximusDM
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?
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.