Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] podwójne odejmowanie rekordu :/, gdzie jest błąd w php??
Kamil90
post
Post #1





Grupa: Zarejestrowani
Postów: 73
Pomógł: 0
Dołączył: 17.02.2008
Skąd: Toruń

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


Witam.
Mam dziwny i chyba rzadko spotykany problem (IMG:http://forum.php.pl/style_emoticons/default/wstydnis.gif) . Chodzi o to że mam formularz dodawania filmików, wprowadzam dane i wszystko jest ok. Pole 'typ' wynosi 7 tak jak być powinno...
(IMG:http://img159.imageshack.us/img159/9518/83638262bg6.jpg)

Później dane z formularza idą do weryfikacji do admina:
  1. <?php
  2. if ($admin && $row['typ'] >= 5 && $row['typ'] != 15 && $row['typ'] != 16 && $row['typ'] != 17)
  3. {
  4. echo '<p>
  5. Weryfikacja: <a href="index.php?page=display&amp;id=' . ((int) $_GET['id']) . '&amp;action=zatwierdz" title="ZatwierdĽ"><img src="ikonki/zatwierdz.gif"border="0">zatwierdĽ</a> <a href="index.php?page=display&amp;id=' . ((int) $_GET['id']) . '&amp;action=odrzuc" title="Odrzuć"><img src="ikonki/usun.gif"border="0">odrzuć</a>
  6. </p>';
  7. ?>


a nastepnie od pola 'typ' ma być odjęte -4 i problem jest w tym, że odejmuje zawsze dwa razy tyle, czyli odejmuje od 7-8 i mam -1 w mysql a powinno być 3 :/, jak wprowadze 2 zamiast 4 to bedzie dejmowało 4 :/ niestety przy kazdej wartości pola 'typ' musi byc odejmowane 4 dlatego nie moge zastapić tego 2. Oto kod w którym przerabiana jest weryfikacja:
  1. <?php
  2. if ($admin && isset($_GET['action']))
  3. {
  4.   switch ($_GET['action'])
  5.   {
  6.   case 'zatwierdz':
  7.     if (!mysql_query('update `stuff` set `typ` = `typ` - 4 where `id`=' . ((int) $_GET['id'])  ))
  8.     {
  9.       echo '<p>Nie udało się zaaktualizować rekordu.</p>';
  10.     }
  11.     else
  12.     {
  13.       echo '<p>Filmik został zatwierdzony poprawnie.</p>';
  14.     }
  15.     break;
  16.  
  17.   case 'odrzuc':
  18.     if (mysql_query('delete from `komentarze` where `stuff`=' . ((int) $_GET['id'])) &&
  19.     mysql_query('delete from `oceny` where `stuff`=' . ((int) $_GET['id'])) &&
  20.     mysql_query('delete from `stuff` where `id`=' . ((int) $_GET['id'])))
  21.     {
  22.       echo '<p>Filmik został poprawnie usuniety.</p>';
  23.     }
  24.     else
  25.     {
  26.       echo '<p>Nie udało się usunąć rekordów z tabeli.</p>';
  27.     }
  28.     break;
  29.   }
  30. }
  31. ?>


a oto efekt w bazie mysql:
(IMG:http://img530.imageshack.us/img530/6329/59122780hp6.jpg)

mam nadzieje że jesno przedstawiłem problem... bardzo proszę o pomoc.

Pozdrawiam

Ten post edytował erix 21.01.2009, 16:25:44
Powód edycji: bbcode + ortografia
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Zyx
post
Post #2





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Jesteś pewien, że ten kod albo to zapytanie się dwukrotnie nie wykonuje? Ono samo działa poprawnie, zaś podane kawałki kodu nie mówią nic, dlaczego tak by się mogło dziać.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 9.10.2025 - 17:37