Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Działanie matematyczne
Forum PHP.pl > Forum > Przedszkole
marex112
Potrzebuję pomocy z wykonaniem działania matematycznego
To co znajduje się w zarobku (netto) chcę żeby pokazywało sam wynik.
Tak to na razie wygląda



Obecny kod:
  1. <?php
  2. include("polacz.php");
  3. $query = mysql_query("select dystans*2 AS brutto, kosztpaliwa, floor(mandaty*0.1) AS mandacik, floor(dystans/500) AS bramki, floor(dystans*0.15) AS serwis, premia, kara from trasy where id_trasy='".(int)$_GET['id']."'"); // 1
  4. while($rekord = mysql_fetch_array($query))
  5. {
  6. echo ' <tr>
  7. <th style="width:50%">Zarobek (brutto):</th>
  8. <td>'.$rekord[0].' ?</td>
  9. </tr>
  10. <tr>
  11. <th>Mandaty:</th>
  12. <td>- '.$rekord[2].' ?</td>
  13. </tr>
  14. <tr>
  15. <th>Koszt paliwa:</th>
  16. <td>- '.$rekord[1].' ?</td>
  17. </tr>
  18. <tr>
  19. <th>Koszta bramek:</th>
  20. <td>- '.$rekord[3].' ?</td>
  21. </tr>
  22. <tr>
  23. <th>Serwis:</th>
  24. <td>- '.$rekord[4].' ?</td>
  25. </tr>
  26. <tr>
  27. <th>Kara:</th>
  28. <td>- '.$rekord[6].' ?</td>
  29. </tr>
  30. <tr>
  31. <th>Premia:</th>
  32. <td>+ '.$rekord[5].' ?</td>
  33. </tr>
  34. ';
  35. }
  36. ?>
bostaf
A w tym kodzie, który wkleiłeś, w ogóle nie ma ostatniego wiersza pokazującego w jaki sposób w tej chwili wyświetlasz zarobek netto.
Nie próbowałeś po prostu pododawać tych wartości?
  1. $rekord[0] + $rekord[1] + ...
marex112
Cytat(bostaf @ 5.05.2017, 17:13:13 ) *
A w tym kodzie, który wkleiłeś, w ogóle nie ma ostatniego wiersza pokazującego w jaki sposób w tej chwili wyświetlasz zarobek netto.
Nie próbowałeś po prostu pododawać tych wartości?
  1. $rekord[0] + $rekord[1] + ...

Faktycznie zapomnialem go tutaj dodac.
  1. '.$rekord[0].' - '.$rekord[2].' - '.$rekord[1].' - '.$rekord[3].' - '.$rekord[4].' - '.$rekord[6].' + '.$rekord[5].'

Jak tak zrobie to wychodzi liczba na minusie i usuwa inne wiersze (tylko ten wynik sie pokazuje, błędne z resztą):
  1. '.$rekord[0] - $rekord[2] - $rekord[1] - $rekord[3] - $rekord[4] - $rekord[6] + $rekord[5].'
bostaf
Cytat(marex112 @ 5.05.2017, 22:25:12 ) *
Jak tak zrobie to wychodzi liczba na minusie i usuwa inne wiersze (tylko ten wynik sie pokazuje, błędne z resztą):
  1. '.$rekord[0] - $rekord[2] - $rekord[1] - $rekord[3] - $rekord[4] - $rekord[6] + $rekord[5].'

Poczytaj o używaniu apostrofów i cudzysłowów.
W skrócie, w apostrofach i cudzysłowach wyświetlany jest tekst. Jeśli chcesz wykonywać operacje matematyczne, to muszą być poza apostrofami/cudzysłowami, czyli po prostu:
  1. echo $rekord[0] + $rekord[2] + $rekord[1] + $rekord[3] + $rekord[4] + $rekord[6] + $rekord[5]


PS. Wydaje mi się, że w bazie przechowujesz liczby ujemne, czyli w działaniu powinieneś stosować tylko dodawanie. Ale sprawdź.
marex112
Cytat(bostaf @ 5.05.2017, 23:56:21 ) *
Poczytaj o używaniu apostrofów i cudzysłowów.
W skrócie, w apostrofach i cudzysłowach wyświetlany jest tekst. Jeśli chcesz wykonywać operacje matematyczne, to muszą być poza apostrofami/cudzysłowami, czyli po prostu:
  1. echo $rekord[0] + $rekord[2] + $rekord[1] + $rekord[3] + $rekord[4] + $rekord[6] + $rekord[5]


PS. Wydaje mi się, że w bazie przechowujesz liczby ujemne, czyli w działaniu powinieneś stosować tylko dodawanie. Ale sprawdź.

Nie ma żadnych ujemnych liczb w bazie.
Teraz ten kod poniżej zwraca mi wynik -1666 (nieprawidłowy), a jak zmienie na same dodawanie to wynik jest 1666. Czyli coś nie tak.
  1. <?php
  2. include("polacz.php");
  3. $query = mysql_query("select dystans*2 AS brutto, kosztpaliwa, floor(mandaty*0.1) AS mandacik, floor(dystans/500) AS bramki, floor(dystans*0.15) AS serwis, premia, kara from trasy where id_trasy='".(int)$_GET['id']."'"); // 1
  4. while($rekord = mysql_fetch_array($query))
  5. {
  6. echo ' <tr>
  7. <th style="width:50%">Zarobek (brutto):</th>
  8. <td>'.$rekord[0].' €</td>
  9. </tr>
  10. <tr>
  11. <th>Mandaty:</th>
  12. <td>- '.$rekord[2].' €</td>
  13. </tr>
  14. <tr>
  15. <th>Koszt paliwa:</th>
  16. <td>- '.$rekord[1].' €</td>
  17. </tr>
  18. <tr>
  19. <th>Koszta bramek:</th>
  20. <td>- '.$rekord[3].' €</td>
  21. </tr>
  22. <tr>
  23. <th>Serwis:</th>
  24. <td>- '.$rekord[4].' €</td>
  25. </tr>
  26. <tr>
  27. <th>Kara:</th>
  28. <td>- '.$rekord[6].' €</td>
  29. </tr>
  30. <tr>
  31. <th>Premia:</th>
  32. <td>+ '.$rekord[5].' €</td>
  33. </tr>
  34. <tr>
  35. <th>Zarobek (netto):</th>
  36. <td>'.$rekord[0] - $rekord[2] - $rekord[1] - $rekord[3] - $rekord[4] - $rekord[6] + $rekord[5].'</td>
  37. </tr>
  38. ';
  39. }
  40. ?>
woxala123
<tr>
<th>Zarobek (netto):</th>
<td>'.$rekord[0] - $rekord[2] - $rekord[1] - $rekord[3] - $rekord[4] - $rekord[6] + $rekord[5].'</td>
</tr>
to może
$zarobek = '.$rekord[0] - $rekord[2] - $rekord[1] - $rekord[3] - $rekord[4] - $rekord[6] + $rekord[5].';

echo '$zarobek;'
Tomplus
Co wy za głupoty robicie?
Po co cudzysłów do sumowania?

Sprawa jest taka prosta, że nie powinno być kłopotu.

- Najpierw sumuje sobie wszystko do zmiennej
- potem wrzucam zmienną do funkcji echo, tworzącą tabelkę
- dodaje jeszcze kolumnę z sumą poszczególnych rekordów, tak dla sprawdzenia czy wszystko jest wporządku.


  1. $zarobek = $rekord[0] - $rekord[2] - $rekord[1] - $rekord[3] - $rekord[4] - $rekord[6] + $rekord[5];
  2.  
  3. echo "<tr>
  4. <th>Zarobek (netto):</th>
  5. <td>".$zarobek."</td>
  6. <td>= suma (".$rekord[0]." - ".$rekord[2]." - ".$rekord[1]." - ".$rekord[3]." - ".$rekord[4]." - ".$rekord[6]." + ".$rekord[5].")</td>
  7. </tr>";


marex112
Teraz działa jak należy smile.gif dzięki wszystkim za pomoc

  1. <?php
  2. include("polacz.php");
  3. $query = mysql_query("select dystans*2 AS brutto, kosztpaliwa, floor(mandaty*0.1) AS mandacik, floor(dystans/500) AS bramki, floor(dystans*0.15) AS serwis, premia, kara from trasy where id_trasy='".(int)$_GET['id']."'"); // 1
  4. $rekord = mysql_fetch_array($query);
  5. $zarobek = $rekord[0] - $rekord[2] - $rekord[1] - $rekord[3] - $rekord[4] - $rekord[6] + $rekord[5];
  6. echo ' <tr>
  7. <th style="width:50%">Zarobek (brutto):</th>
  8. <td>'.$rekord[0].' €</td>
  9. </tr>
  10. <tr>
  11. <th>Mandaty:</th>
  12. <td>- '.$rekord[2].' €</td>
  13. </tr>
  14. <tr>
  15. <th>Koszt paliwa:</th>
  16. <td>- '.$rekord[1].' €</td>
  17. </tr>
  18. <tr>
  19. <th>Koszta bramek:</th>
  20. <td>- '.$rekord[3].' €</td>
  21. </tr>
  22. <tr>
  23. <th>Serwis:</th>
  24. <td>- '.$rekord[4].' €</td>
  25. </tr>
  26. <tr>
  27. <th>Kara:</th>
  28. <td>- '.$rekord[6].' €</td>
  29. </tr>
  30. <tr>
  31. <th>Premia:</th>
  32. <td>+ '.$rekord[5].' €</td>
  33. </tr>
  34. <tr>
  35. <th>Zarobek (netto):</th>
  36. <td>'.$zarobek.'</td>
  37. </tr>
  38. ';
  39. ?>
woxala123
A dlaczego nie dałeś mi że ci pomogłem.]Napisałem kawałek kodu który powinien Ciebie naprowadzić. A dlatego to dałem w cudzysłów, bo gotowca nie dostaniesz.
A Tumpulus znów wyskoczył jak Pomysłowy dobromir.
Pozdrawiam.
Tomplus
@woxala
Na prostym przykładzie popełniłeś kilka błędów. Głównie robiąc z liczb stringi, nie mówiąc już że nie korzystasz z tagu PHP dla kodu PHP.
woxala123
Celowo to zrobiłem, by autor pytania mógł sam dociec prawdy- mając na uwadze że tylko wskazujemy kierunek.
PS.
Niech żyje PDO
Pyton_000
@woxala123 co innego napiać kawał kodu z palca bez odpalania który może zawierać błędy a co innego pisać totalne głupoty. Ktoś kto zaczyna z PHP nie dostanie błędu tylko wyjdą głupoty. Mogłeś pokazać 2 zmienne po prostu a autor mógł sobie dopisać resztę. Ew. pokazać z kosmosu przykład podobny ale przynajmniej poprwawny jakoś.
woxala123
  1. <?php
  2. /**
  3.  * Created by PhpStorm.
  4.  * User: czesław online
  5.  * Date: 07.05.2017
  6.  * Time: 14:19
  7.  */
  8. $a=2;
  9. $b=155;
  10. $c=$a + $b;
  11. echo $c;

poprwawny
Tak ma być Pyton_000
poprawny

PS. Wstydź się.
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.