Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: początkujący user>>problem>> prosty skrypt kalkulator
Forum PHP.pl > Forum > Przedszkole
peter13135
zrobiłem taki plik php
  1. <body bgcolor="362F2D">
  2. <form action="" method=post>
  3. <table border=0 >
  4.  
  5. <tr>
  6. <td><font color="green">liczba 1</font></td><td><input type="text" name="liczba1" size=2 maxlenght="2"></td></tr>
  7.  
  8. <td><font color="green">liczba 2</font></td><td><input type="text" name="liczba2" size=2 maxlenght="2"></td></tr>
  9.  
  10.  
  11.  
  12.  
  13. <tr> 
  14. <td><select name="znak">
  15. <option value="a">dodawanie
  16. <option value="b">odejmowanie
  17. <option value="c">mnozenie
  18. <option value="d">dzielenie
  19. </select> </td> </tr>
  20. <td colspan=2 algin=center><input type=submit value="click"></td></tr></form>
  21.  
  22.  
  23. [php]
  24. <? $suma=$liczba1+$liczba2;
  25. $roznica=$liczba1-$liczba2;
  26. $iloczyn=$liczba1*$liczba2;
  27. $iloraz=$liczba1/$liczba2;
  28.  
  29. if($_POST['znak']=="a")
  30. {
  31. print "$liczba1+$liczba2=$suma";
  32. }
  33. if($_POST['znak']=="b")
  34. {
  35. print "$liczba1-$liczba2=$roznica";
  36. }
  37. if($_POST['znak']=="c")
  38. {
  39. print "$liczba1*$liczba2=$iloczyn";
  40. }
  41. if($_POST['znak']=="d")
  42. {
  43. print "$liczba1/$liczba2=";
  44. }
  45.  
  46. ?>
  47. [/php]
  48. </body>
  49. </html>



problem w tym że gdy niewpisze danych to pojawia sie komunikat
  1. <?php
  2. Warning: Division by zero in /home/accounts_p/peter13135/public_html/php/kalkulatorek/1.php on line 28
  3. ?>

wydaje mi sie że chodzi o to że w
  1. <?php
  2. if($_POST['znak']=="a")
  3. ?>
niema zdefiniowanego znaku (tzn niezostał podany "znak" i wywala błąd że jest puste
jednak niewiem jak to rozwiązać
Cienki1980

Proszę zapoznać się z Tematyką i zasadami panującymi na forum Przedszkole i dodać poprawny tag do tematu.

W innym przypadku wątek zostanie zamknięty.
tomekby
zacznijmy od tego, że powinno być :
  1. <?php
  2. if($_POST['znak']=="a")
  3. {
  4. print "$liczba1+$liczba2=$suma";
  5. }
  6. else if($_POST['znak']=="b")
  7. {
  8. print "$liczba1-$liczba2=$roznica";
  9. }
  10. else if($_POST['znak']=="c")
  11. {
  12. print "$liczba1*$liczba2=$iloczyn";
  13. }
  14. else($_POST['znak']=="d")
  15. {
  16. print "$liczba1/$liczba2=";
  17. }
  18.  
  19. ?>


ps. rób kolorowanie PHP, a nie HTML smile.gif
peter13135
jeszcze gorzej...
  1. <html>
  2. <body bgcolor="362F2D">
  3. <form action="" method=post>
  4. <table border=0 >
  5. <tr>
  6. <td><font color="green">liczba 1</font></td><td><input type="text" name="liczba1" size=2 maxlenght="2"></td></tr>
  7. <td><font color="green">liczba 2</font></td><td><input type="text" name="liczba2" size=2 maxlenght="2"></td></tr>
  8. <tr> 
  9. <td><select name="znak">
  10. <option value="a">dodawanie
  11. <option value="b">odejmowanie
  12. <option value="c">mnozenie
  13. <option value="d">dzielenie
  14. </select> </td> </tr>
  15. <td colspan=2 algin=center><input type=submit value="click"></td></tr></form>
  16. <?
  17. $suma=$liczba1+$liczba2;
  18. $roznica=$liczba1-$liczba2;
  19. $iloczyn=$liczba1*$liczba2;
  20. $iloraz=$liczba1/$liczba2;
  21.  
  22. if($_POST['znak']=="a")
  23. {
  24. print "$liczba1+$liczba2=$suma";
  25. }
  26. else if($_POST['znak']=="b")
  27. {
  28. print "$liczba1-$liczba2=$roznica";
  29. }
  30. else if($_POST['znak']=="c")
  31. {
  32. print "$liczba1*$liczba2=$iloczyn";
  33. }
  34. else($_POST['znak']=="d")
  35. {
  36. print "$liczba1/$liczba2=";
  37. }
  38.  
  39. ?>
  40. </body>
  41. </html>

wyskakuje bład
Kod
Parse error: syntax error, unexpected '{' in /home/accounts_p/peter13135/public_html/php/kalkulatorek/1.php on line 35
maziak
Witai,
  1. <?php
  2. else($_POST['znak']=="d")
  3. {
  4. print "$liczba1/$liczba2=";
  5. }
  6. ?>


albo else if albo samo else bez warunku.

Generalnie rzecz biorac to co miales z IFami nie bylo zle skoro zaczynasz. Aby uniknac tego, że operacje są wykonywane mimo ze "znak" nie jest podany, mozesz wziac wszystkie te działania w jeden IF z warunkiem isset($_POST['znak'])

  1. <?php
  2. if($_POST['znak']) {
  3.  
  4. //cala ta reszta
  5.  
  6. } else {
  7.  
  8. // jezeli 'znak' nie jest podany
  9.  
  10. }
  11. ?>
peter13135
poprawiłem to co powiedziałes jednak nadal mam en bład
Warning: Division by zero in /home/accounts_p/peter13135/public_html/php/kalkulatorek/1.php on line 20
jak ja zrobilem za pierwszym razem to na jedno wychodzilo
edit//
niewiem co to jest isset
niewiem jak to wszystko wrzucić w jeden if
jestem poczatkujcy ;]
czy mógłbys mi dac jakiegos linka do wjasnienia co to isset?
Crozin
W podstawówce Pani mówiła
Cytat
Dzieci pamiętajcie... przez zero nie dzielimi!
winksmiley.jpg
  1. <?php
  2. $iloraz= ($liczba2 <> 0) ? $liczba1/$liczba2 : $liczba1;
  3. ?>
maziak
To jest ostrzezenie o dzieleniu przez zero. Zobacz co masz w linii 20 - "$iloraz=$liczba1/$liczba2;". Jestes pewny, że zmienne "$liczba1" oraz "$liczba2" maja przypisane jakies wartosci ? winksmiley.jpg
  1. <?php
  2. $liczba1=$_POST['liczba1'];
  3. $liczba2=$_POST['liczba2'];
  4. ?>


PS. Apropo wytłumaczenia co robi dana funkcja - wszystko to jest w Manualu, a link - o tu :
http://php.net.pl/manual/pl/
(fukcje ktorej chcesz objasnienie wpisujesz oczywiscie w "search for")

Generalnie isset zwraca wartosc TRUE gdy dana zmienna istnieje, a FALSE gdy nie istnieje.
peter13135
działa qrde biggrin.gif
a może powiecie mi jeszcze jak moge wynik przeniesc pod formularz (obecnie jest nad nim)
edit// moze zna ktos jakies polskie tutki?questionmark.gif
Crozin
Poprostu wstaw skrypt PHP w tym miejscu, w którym chcesz mieć wyświetlane wyniki.

Co do "tutków" -> http://pl2.php.net/pl/manual/ winksmiley.jpg
mike
Zamykam.
Na przyszłość proszę spełniać prośby moderatorów.
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.