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%)
-----


I właśnie tu by się teraz przydała przyzwoita biblioteka do komunikacji z bazami danych, a nie ciągle tylko te debilne mysql_cośtam, które już dawno powinny znaleźć się na śmietniku historii. Choćby nawet i PDO, bo wtedy od biedy można stworzyć prostą nakładkę, która wyświetla wszystkie zapytania i inaczej zainicjować obiekt - wtedy byś od razu widział, czy to wina skryptu, bo dwukrotnie wykonuje jakieś zapytanie, czy też może tego, że przez przypadek jest wywoływana strona dwa razy jakimś magicznym sposobem.
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: 14.10.2025 - 01:21