Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PHP MYSQL | Proszę o pomoc bo skrypt gdy się nie powiedzie i tak odejmuje wartość z tabeli
Forum PHP.pl > Forum > PHP
mateuszmz2
Witam

Tworzę formularz wysyłający dane ogłoszenia do bazy danych mysql. Niestety stoję na części odejmujących dane po zaznaczeniu pola chcakbox.
Kolejnym problemem jest to że nie mogę odjąć wartości 0.01 czyli 100 części wartości 1. Natomiast zostaje odjęta wartość 0.1.

Mam następujący kod:

  1.  
  2. include("polaczenie.php"); // Dane do połączenia bazy danych
  3.  
  4. $oplaty_sql = mysql_query("SELECT * FROM oplaty_serwis");
  5. $oplaty = mysql_fetch_array($oplaty_sql);
  6.  
  7. if($_POST['Podswietlenie'] == 1) {
  8. $zaznaczenie = 1; // Zaznaczenie pola chackbox
  9. mysql_query("UPDATE users SET bank=bank-'".$oplaty['Podswietlenie']."' WHERE id='".$data['login']."'"); // Wartość w tabeli 0.05 kosztów za podswietlenie.
  10. }else{
  11. $zaznaczenie = 0; // Odznaczenie pola chackbox
  12. }
  13.  
  14. if(isset($_POST['wysylanie'])) {
  15.  
  16. if($data['bank'] = 0.00) {
  17.  
  18. // Jeśli stan konta wynosi 0.00 to nie można więcej odjąć środków. Problem następuje gdy są 2 bola chackbox i środki starczają na 1 usluge, Np pozostaje 0.4 a druga usługa kosztuje 0.5 to z konta zostaje odjęta kwota -0.1 a chodzi by kwota bezwględna 0.00 i dalej wystąpił błąd a środki nie zostawały odejmowane.
  19. Mi odejmuje środki nawet gdy usługa się nie powiedzie.
  20.  
  21. $wiadomosc = "<div class='error'>Posiadasz 0.00 na koncie nie możesz wykupic uslugi.</div>";
  22. }else{
  23.  
  24. mysql_query("INSERT INTO (Podswietlenie,data) VALUE ($zaznaczenie,Now())");
  25. $wiadomosc = "<div class='succes'>Ogloszenie dodane</div>";
  26.  
  27. }


  1. <form action="#" method="post">
  2. <?=$wiadomosc?>
  3. <b>Podswietlenie:</b>
  4. <input type="checkbox" name="Podswietlenie" value="1" />
  5. <input type="submit" name="wysylanie" value="wyslij"/>
  6. </form>


Proszę o pomoc w rozwiązani tego problemu.
Sephirus
Nie do końca rozumiem ale...

  1. include("polaczenie.php"); // Dane do połączenia bazy danych
  2.  
  3. $oplaty_sql = mysql_query("SELECT * FROM oplaty_serwis");
  4. $oplaty = mysql_fetch_array($oplaty_sql);
  5.  
  6. if($_POST['Podswietlenie'] == 1) {
  7. $zaznaczenie = 1; // Zaznaczenie pola chackbox
  8. mysql_query("UPDATE users SET bank=bank-'".$oplaty['Podswietlenie']."' WHERE id='".$data['login']."'"); // Wartość w tabeli 0.05 kosztów za podswietlenie.
  9. }else{
  10. $zaznaczenie = 0; // Odznaczenie pola chackbox
  11. }
  12.  
  13. if(isset($_POST['wysylanie'])) {
  14.  
  15. if($data['bank'] = 0.00) { // "="? :) A może jednak "=="? :)
  16.  
  17. // ...
  18.  
  19. $wiadomosc = "<div class='error'>Posiadasz 0.00 na koncie nie możesz wykupic uslugi.</div>";
  20. }else{
  21.  
  22. mysql_query("INSERT INTO (Podswietlenie,data) VALUE ($zaznaczenie,Now())");
  23. $wiadomosc = "<div class='succes'>Ogloszenie dodane</div>";
  24.  
  25. }
mateuszmz2
Zmieniłem if($data['bank'] == 0.00) {

Niestety mając 0.4 a łączne koszta 2-dwóch usług to 1.5.
Ogłoszenie dodane efekt na koncie -1.1 a chodzi o to by jeśli nie stać mnie na 1 z usług to wyświetli błąd że mnie nie stać na wykupienie danej usługi.
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.