Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Operacje matematyczne, matematyka php
tomasz.cierpial
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 23.03.2012

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


Witam,

Jestem tu nowy poniewaz dopiero zaczalem sie uczyc php, i pojawil mi sie maly problem. Napisalem sobie skrypt php, ktory powinien mi wykonywac pewne dzialanie (dzielenie), nastepnie utworzylem dla niego formularz jak zwykle html. Problem polega na tym ze po wpisaniu wartosci w pola formularza i wykonaniu operacji obliacz wyswietla sie pusta strona tak jakby nic sie nie wykonywalo. Mam nadzieje ze ktos bedzie wiedzial co i jak i dlaczego:) Ponizej kody skryptu i formatki

  1. <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
  2. <form action="kalkulator.php" method="post">
  3. <div><label for="Value1">Dzielna:
  4. <input name="Value1" type="float" id="V1"/></label>
  5. </div>
  6. <div><label for="Value2">Dzielnik:
  7. <input name="Value2" type="float" id="V2"/></label>
  8. </div>
  9. <div><input value="Oblicz" type="submit"/></div>
  10. </form>


oraz kod skryptu

  1. <?php
  2. $Value1=$_POST['Value1'];
  3. $Value2=$_POST['Value2'];
  4.  
  5. if($Value2!=0)
  6. {
  7. $Value3=$Value1/$Value2;
  8. echo 'Wynik działania jest następujący: '. $Value3
  9. }
  10. else
  11. {
  12. echo 'Nie można wykonać dzielenia z powodu błędnego dzielnika: '.htmlspecialchar($Value2,ENT_QUOTES,'UTF-8').' !';
  13. }
  14.  
  15. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 18)
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




Zacznij od sprawdzenia jak wygląda struktura PRAWIDŁOWEGO dokumentu html. Potem włącz wyświetlanie błedów i podaj je tutaj.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Sky_walker
post
Post #3





Grupa: Zarejestrowani
Postów: 214
Pomógł: 23
Dołączył: 26.09.2005

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


  1. $Value1=(int)$_POST['Value1'];
  2. $Value2=(int)$_POST['Value2'];

ustawi ci wartości na liczby (integer)

Poza tym - nie ma czegoś takiego jak "htmlspecialchar" - jest htmlspecialchars a białą stronę dostajesz pewnie dlatego, że masz wyłączone raportowanie błędów smile.gif


--------------------
Pomogłem? Kliknij poniżej.
Dzięki! :D
Go to the top of the page
+Quote Post
daniofantasy
post
Post #4





Grupa: Zarejestrowani
Postów: 30
Pomógł: 1
Dołączył: 14.06.2007
Skąd: Chesterfield UK

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


w razie czego zawsze mozesz przerwac skrypt i wyswietlic co masz w zmiennej $_POST;

  1. die(var_dump($_POST));


lub wyswietlic wynik dzialania:

  1. $Value3=$Value1/$Value2;
  2.  
  3. die(print_r($Value3));


tak samo mozesz wyswietlic te zmienne bez przerywania dzialania skryptu (tzn bez uzycia die())

Ten post edytował daniofantasy 23.03.2012, 16:16:49
Go to the top of the page
+Quote Post
frantic09
post
Post #5





Grupa: Zarejestrowani
Postów: 42
Pomógł: 6
Dołączył: 7.03.2011
Skąd: Kraków

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


No i na końcu bodajże 8 linii brak Ci średnika wink.gif


--------------------
  1. echo "Wydaje mi się, że mogłoby to zadziałać... ;)";
Go to the top of the page
+Quote Post
Matthewcode
post
Post #6





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 24.03.2012
Skąd: Bstok

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


  1. <?
  2. $y=$_POST['y'];
  3. $x=$_POST['x'];
  4. if ($x) {
  5. echo 'mnożymy '.$x.' * '.$y.' = '.($x*$y).'<br />';
  6. }
  7.  
  8. ?>
  9. <?
  10. $y1=$_POST['y1'];
  11. $x1=$_POST['x1'];
  12. if ($x) {
  13. echo 'dzielimy '.$x.' / '.$y.' = '.($x/$y).'<br />';
  14. }
  15.  
  16. ?>
  17. <?
  18. $y2=$_POST['y2'];
  19. $x2=$_POST['x2'];
  20. if ($x) {
  21. echo 'dodajemy '.$x.' + '.$y.' = '.($x+$y).'<br />';
  22. }
  23. ?>
  24. <?
  25. $y3=$_POST['y3'];
  26. $x3=$_POST['x3'];
  27. if ($x) {
  28. echo 'odejmujemy '.$x.' - '.$y.' = '.($x-$y).' <br />';
  29. }
  30. ?>
  31.  
  32. <form action="kalkulator.php" method="post">
  33. Podaj X: <input type="text" name="x" value="" /><br />
  34. Podaj Y: <input type="text" name="y" value="" /><br />
  35. <input type="submit" value="Policz!" />
  36. <br>
  37. </form>

Kod napisany przeze mnie smile.gif

Ten post edytował Matthewcode 24.03.2012, 15:56:27


--------------------
Zapraszam na http://matthew-code.prv.pl/ - zamieszczam tutaj moje skrypty PHP / HTML.
Go to the top of the page
+Quote Post
Niktoś
post
Post #7





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

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


Ładu ,składu się nie trzyma, poza tym nie wykluczyłeś możliwości dzielenia liczby 0.
Go to the top of the page
+Quote Post
Matthewcode
post
Post #8





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 24.03.2012
Skąd: Bstok

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


Cytat(Niktoś @ 24.03.2012, 15:39:17 ) *
Ładu ,składu się nie trzyma, poza tym nie wykluczyłeś możliwości dzielenia liczby 0.


Z dzieleniem przez 0 już poprawiłem.
Co do składu i ładu to może i prawda. Jestem na poziomie raczkowania smile.gif


--------------------
Zapraszam na http://matthew-code.prv.pl/ - zamieszczam tutaj moje skrypty PHP / HTML.
Go to the top of the page
+Quote Post
Niktoś
post
Post #9





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

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


Po co Tobie dodatkowe odwołania do tablicy Post i zmienne jak ich wogóle nie używasz.
$y1=$_POST['y1'];

$x1=$_POST['x1'];

Zrób sobie selecta -tam ustaw możliwe operacje.Następnie zrób sobie switcha.Będzie to lepiej wyglądało.
Go to the top of the page
+Quote Post
Matthewcode
post
Post #10





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 24.03.2012
Skąd: Bstok

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


Cytat(Niktoś @ 24.03.2012, 15:56:18 ) *
Po co Tobie dodatkowe odwołania do tablicy Post i zmienne jak ich wogóle nie używasz.
$y1=$_POST['y1'];

$x1=$_POST['x1'];

Zrób sobie selecta -tam ustaw możliwe operacje.Następnie zrób sobie switcha.Będzie to lepiej wyglądało.

Poszperam na internecie i po patrze co i jak bo nic z tego nie zrozumiałem biggrin.gif
#edit
Jak wykluczyć dzielenie przez 0 bo jednak nie poprawiłem haha.gif

#edit2

Trochę kod skróciłem, mam nadzieję, że teraz wygląda bardziej estetycznie:
  1. <body style="background-color: #000000; color: #ffffff;">
  2. <?
  3. $y=$_POST['y'];
  4. $x=$_POST['x'];
  5. if ($x) {
  6. echo 'mnożymy '.$x.' * '.$y.' = '.($x*$y).'<br />';
  7. }
  8. if ($x) {
  9. echo 'dzielimy '.$x.' / '.$y.' = '.($x/$y).'<br />';
  10. }
  11. if ($x) {
  12. echo 'dodajemy '.$x.' + '.$y.' = '.($x+$y).'<br />';
  13. }
  14. if ($x) {
  15. echo 'odejmujemy '.$x.' - '.$y.' = '.($x-$y).'<br />';
  16. }
  17. ?>
  18. <form action="kalkulator1.php" method="post">
  19. Podaj X: <input type="text" name="x" value="" /> <br />
  20. Poday Y: <input type="text" name="y" value="" /> <br />
  21. <input type="submit" name="Ok" value="Policz!">
  22. <br>
  23. </form>

Zostaje jeszcze kwestia zablokowania dzielenia przez zero.

Ten post edytował Matthewcode 24.03.2012, 16:04:49


--------------------
Zapraszam na http://matthew-code.prv.pl/ - zamieszczam tutaj moje skrypty PHP / HTML.
Go to the top of the page
+Quote Post
Niktoś
post
Post #11





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

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


Cytat
Jak wykluczyć dzielenie przez 0 bo jednak nie poprawiłem

  1. if( ($x) &&($y!=0)){
  2. echo 'dzielimy '.$x.' / '.$y.' = '.($x/$y).'<br />';
  3. }
  4. else {echo "Nie można dzielić przez 0";}


PS.We dwóch to piszecie ,czy to Twoje drugie konto?

Ten post edytował Niktoś 24.03.2012, 16:08:12
Go to the top of the page
+Quote Post
Matthewcode
post
Post #12





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 24.03.2012
Skąd: Bstok

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


Cytat(Niktoś @ 24.03.2012, 16:04:23 ) *
  1. if( ($x) &&($y!=0)){
  2. echo 'dzielimy '.$x.' / '.$y.' = '.($x/$y).'<br />';
  3. }
  4. else {echo "Nie można dzielić przez 0";}


PS.We dwóch to piszecie ,czy to Twoje drugie konto?


  1. }
  2. if( ($x) &&($y!=0)){
  3. echo 'dzielimy '.$x.' / '.$y.' = '.($x/$y).'<br />';
  4.  
  5. else {echo "Nie można dzielić przez 0"};
  6. }


Cytat
Parse error: syntax error, unexpected T_ELSE in C:\xampp\htdocs\matthew-code\kalkulator1.php on line 11

Sami to piszemy.
Ten co założył temat to go nawet nie znam, a ja, aby nie spamować tematami to piszę w tym tongue.gif

Ten post edytował Matthewcode 24.03.2012, 16:11:48


--------------------
Zapraszam na http://matthew-code.prv.pl/ - zamieszczam tutaj moje skrypty PHP / HTML.
Go to the top of the page
+Quote Post
Niktoś
post
Post #13





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

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


Bo robisz kopiuj /wklej i nic nie myślisz- ja błąd wyżej poprawiłem.
Go to the top of the page
+Quote Post
Matthewcode
post
Post #14





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 24.03.2012
Skąd: Bstok

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


  1. <body style="background-color: #000000; color: #ffffff;">
  2. <?
  3. $y=$_POST['y'];
  4. $x=$_POST['x'];
  5. if ($x) {
  6. echo 'mnożymy '.$x.' * '.$y.' = '.($x*$y).'<br />';
  7. }
  8. if( ($x) &&($y!=0)){
  9. echo 'dzielimy '.$x.' / '.$y.' = '.($x/$y).'<br />';
  10. }
  11. else {echo "Nie można dzielić przez 0";}
  12.  
  13. if ($x) {
  14. echo 'dodajemy '.$x.' + '.$y.' = '.($x+$y).'<br />';
  15. }
  16. if ($x) {
  17. echo 'odejmujemy '.$x.' - '.$y.' = '.($x-$y).'<br />';
  18. }
  19. ?>
  20. <form action="kalkulator1.php" method="post">
  21. Podaj X: <input type="text" name="x" value="" /> <br />
  22. Poday Y: <input type="text" name="y" value="" /> <br />
  23. <input type="submit" name="Ok" value="Policz!">
  24. </form>

Tak to działa - pisze, że nie można dzielić przez zero.
Nie pokazuje dodawania.
Jak zrobię tak:

  1. if( ($x) &&($y!=0)){
  2. echo 'dzielimy '.$x.' / '.$y.' = '.($x/$y).'<br />';
  3. }
  4. else {echo "Nie można dzielić przez 0";}
  5. }

To wyskakuje błąd.


--------------------
Zapraszam na http://matthew-code.prv.pl/ - zamieszczam tutaj moje skrypty PHP / HTML.
Go to the top of the page
+Quote Post
Niktoś
post
Post #15





Grupa: Zarejestrowani
Postów: 1 195
Pomógł: 109
Dołączył: 3.11.2011

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


W linii piątej wykasuj } ,bo sobie za dużo dałeś, ten przykład musi działać,tylko Ty za bardzo nie wiesz co w ogóle robisz.Zachęcam do jakichś tutoriali-pełno ich na google ,aby poznać instrukcje warunkowe,pętle itp.
Poza tym kod jest poprawny tylko wynik dodawania pokazuje w jednej linice z komunikatem dzieleni:

  1. <body style="background-color: #000000; color: #ffffff;">
  2. <?
  3. $y=$_POST['y'];
  4. $x=$_POST['x'];
  5. if ($x) {
  6. echo 'mnożymy '.$x.' * '.$y.' = '.($x*$y).'<br />';
  7. }
  8. if( ($x) &&($y!=0)){
  9. echo 'dzielimy '.$x.' / '.$y.' = '.($x/$y).'<br />';
  10. }
  11. else {echo "Nie można dzielić przez 0".'<br />';}
  12.  
  13. if ($x) {
  14. echo 'dodajemy '.$x.' + '.$y.' = '.($x+$y).'<br />';
  15. }
  16. if ($x) {
  17. echo 'odejmujemy '.$x.' - '.$y.' = '.($x-$y).'<br />';
  18. }
  19. ?>
  20. <form action="kalkulator1.php" method="post">
  21. Podaj X: <input type="text" name="x" value="" /> <br />
  22. Poday Y: <input type="text" name="y" value="" /> <br />
  23. <input type="submit" name="Ok" value="Policz!">
  24. </form>

Teraz będzie Tobie wyświetlać w osobnej lini.

Ten post edytował Niktoś 24.03.2012, 16:38:49
Go to the top of the page
+Quote Post
Matthewcode
post
Post #16





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 24.03.2012
Skąd: Bstok

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


To teraz co zrobić, aby było tak:
Cytat
mnożymy 15 * 0 = 0
Nie można dzielić przez 0
dodajemy 15 + 0 = 15
odejmujemy 15 - 0 = 15

Bo jest tak:
Cytat
mnożymy 15 * 0 = 0
Nie można dzielić przez 0dodajemy 15 + 0 = 15
odejmujemy 15 - 0 = 15

Jak wstawiam <br /> w różnych formach to za każdym razem wyskakuje błąd.


--------------------
Zapraszam na http://matthew-code.prv.pl/ - zamieszczam tutaj moje skrypty PHP / HTML.
Go to the top of the page
+Quote Post
tomasz.cierpial
post
Post #17





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 23.03.2012

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


Witam ponownie. Dziekuje wszystkim za pomoc. Okazalo sie ze bledem byl brak srednika. Teraz wszystko dziala, tylko nie wiem dlaczego jak dziele 14,5 przez 2 to daje mi to 7 a nie 7,25. Liczby sa konwertowane do float. Robie to w taki sposob:

  1. $Value1 = (float)$_POST['Liczba1'];
  2. $Value2=(float)$_POST['Liczba2'];
  3. $Value3=(float)$Value1/$Value2;


Zapewne to jakis drobnyblad ale nie wiem gdzie on moze byc:)
Go to the top of the page
+Quote Post
mortus
post
Post #18





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


W większości języków programowania liczby zmiennoprzecinkowe zapisujemy z kropką, a nie z przecinkiem. Rzutowanie łańcucha znaków 14,5 na typ float da 14. Natomiast rzutowanie łańcucha znaków 14.5 na float da 14.5.
Go to the top of the page
+Quote Post
daniofantasy
post
Post #19





Grupa: Zarejestrowani
Postów: 30
Pomógł: 1
Dołączył: 14.06.2007
Skąd: Chesterfield UK

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


mozesz tez tak:

  1. $liczba = (int)str_replace(',','.',$liczba);


i pozmienia Ci przecinki na kropki
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 01:15