Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [SQL][PHP] Nie działające zapytanie
koszar93
post 29.06.2011, 15:46:25
Post #1





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 24.09.2010

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


Witam,
mam sobie ifa a w nim dwa polecenia UPDATE i wyświetlanie napisu
  1. if($zap2['id'] == $zap['id'])
  2. {
  3. print($zap2['accid']); ///wyswietla dobre id
  4. $SQL->query("UPDATE `accounts` SET `premium_points`=`premium_points`+100 WHERE `id` = ".$zap2['accid'].";"); /// nie działa :/
  5. $SQL->query('UPDATE `smswin` SET `pkt`=1 WHERE `id` = '.$zap2['id'].' LIMIT 1'); /// działa za każdym razem
  6. echo 'PUNKTY ZOSTALY DODANE!!!'; /// to samo co wyżej
  7. }

Po wpisaniu w bazie danych tego zapytania punkty dodają się tylko w tym skrypcie nie chcą się dodać...
Męczę się z tym od rana i nie mam już pomysłów.

Ten post edytował koszar93 29.06.2011, 15:47:36
Go to the top of the page
+Quote Post
Potter125
post 29.06.2011, 16:01:08
Post #2





Grupa: Zarejestrowani
Postów: 35
Pomógł: 7
Dołączył: 18.02.2007

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


Wywal średnik z zapytania

Go to the top of the page
+Quote Post
koszar93
post 29.06.2011, 18:04:17
Post #3





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 24.09.2010

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


Wywaliłem i dalej nie dodaje.
Go to the top of the page
+Quote Post
korex
post 29.06.2011, 18:13:17
Post #4





Grupa: Zarejestrowani
Postów: 36
Pomógł: 4
Dołączył: 2.02.2008

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


  1. IF($zap2['id'] == $zap['id'])
  2. {
  3. print($zap2['accid']); ///wyswietla dobre id
  4. $SQL->query("UPDATE `accounts` SET `premium_points`=premium_points + 100 WHERE `id` = ".$zap2['accid'].";"); /// nie działa :/
  5. $SQL->query('UPDATE `smswin` SET `pkt`=1 WHERE `id` = '.$zap2['id'].' LIMIT 1'); /// działa za każdym razem
  6. echo 'PUNKTY ZOSTALY DODANE!!!'; /// TO samo co wyżej
  7. }
Go to the top of the page
+Quote Post
koszar93
post 29.06.2011, 18:59:24
Post #5





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 24.09.2010

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


Dalej nie działa :/
Go to the top of the page
+Quote Post
Magic WWW
post 29.06.2011, 22:07:20
Post #6





Grupa: Zarejestrowani
Postów: 123
Pomógł: 32
Dołączył: 9.09.2010
Skąd: Brzeg

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


Nie ogarniam Panów korex oraz Potter125 na przyszły raz jak nie wiecie jak pomóc to nie pomagajcie w ogóle smile.gif
  1. if($zap2['id'] == $zap['id'])
  2. {
  3. print($zap2['accid']);
  4. $SQL->query("UPDATE `accounts` SET `premium_points`=`premium_points`+100 WHERE `id`={$zap2['accid']}");
  5. $SQL->query("UPDATE `smswin` SET `pkt`=1 WHERE `id`={$zap2['id']} LIMIT 1");
  6. echo 'PUNKTY ZOSTALY DODANE!!!'; /// to samo co wyżej
  7. }


Jeśli nadal nie będzie działać po nie działającym zapytaniu daj:
  1. echo $SQL -> error;


(nie wiem z jakiej biblioteki MySQL korzystasz tak więc chodzi o wyświetlenie błędu smile.gif)
Go to the top of the page
+Quote Post
koszar93
post 29.06.2011, 22:26:34
Post #7





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 24.09.2010

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


Zapytanie nadal nie działa.

Dałem to co kazałeś po nie działającym zapytaniu jednak nic się nie wyświetliło.
Go to the top of the page
+Quote Post
Magic WWW
post 29.06.2011, 22:30:01
Post #8





Grupa: Zarejestrowani
Postów: 123
Pomógł: 32
Dołączył: 9.09.2010
Skąd: Brzeg

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


Tak wiec upewnij się, że:
- Tabela `accounts` istnieje
- Kolumna `premium_points` istnieje
- Wpis o podanym identyfikatorze istnieje

Powiedz mi jeszcze z jakiego rozszerzenia do MySQL korzystasz? Nie przypadkiem MySQLi? Jeszcze jedno, co Ci wyświetla funkcja print()?
Go to the top of the page
+Quote Post
melkorm
post 29.06.2011, 22:44:55
Post #9





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


Przypięty temat: Jak Poprawnie Zadać Pytanie.


--------------------
Go to the top of the page
+Quote Post
Potter125
post 29.06.2011, 22:59:38
Post #10





Grupa: Zarejestrowani
Postów: 35
Pomógł: 7
Dołączył: 18.02.2007

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


Cytat("Magic WWW")
Nie ogarniam Panów korex oraz Potter125 na przyszły raz jak nie wiecie jak pomóc to nie pomagajcie w ogóle


Cytat
Zapytanie nadal nie działa.



I co? - głupio Ci?

W ogóle sama konstrukcja

  1. echo 'PUNKTY ZOSTALY DODANE!!!'; /// to samo co wyżej


jest nonsensowna, ponieważ jeśli zapytanie nie wykona się, to i tak wyświetli że dodał punkty, czyli poda błędną informację.

Nie mniej jednak sama konstrukcja jest nie logiczna + nazewnictwo zmiennych na nic nie wskazuje. Nie wiemy jak dane są przekazywane, czy jest to stała zdefiniowana, czy może pobierasz coś z GET albo POST. Wklej cały skrypt albo nie wklejaj w ogóle. A najlepiej zapoznaj się z podstawami programowania, bo już takie początki nie wróżą nic dobrego.

Ten post edytował Potter125 29.06.2011, 23:00:51
Go to the top of the page
+Quote Post
koszar93
post 30.06.2011, 09:05:17
Post #11





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 24.09.2010

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


Dodam, że po wpisaniu ręcznie:
  1. $SQL->query("UPDATE `accounts` SET `premium_points`=premium_points + 100 WHERE `id` = 7222646;"); /// nie działa :/

zapytanie się nadal nie wykonuje. Natomiast jeśli wpiszę
  1. echo 'UPDATE `accounts` SET `premium_points`=premium_points + 100 WHERE `id` = ".$zap2['accid']." ';

$zap2['accid'] wyświetla dobre id i po wpisaniu tego zapytania w bazie dancyh w zakładce SQL komenda działa poprawnie.

print($zap2['accid']) wyświetla dobre id.
Go to the top of the page
+Quote Post
korex
post 30.06.2011, 09:14:38
Post #12





Grupa: Zarejestrowani
Postów: 36
Pomógł: 4
Dołączył: 2.02.2008

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


Jak wykonasz
  1. UPDATE `accounts` SET `premium_points`= premium_points + 100 WHERE `id` = '7222646';

z phpmyadmina to dziala?
Go to the top of the page
+Quote Post
koszar93
post 30.06.2011, 09:19:22
Post #13





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 24.09.2010

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


@up
Tak.
Go to the top of the page
+Quote Post
korex
post 30.06.2011, 09:30:18
Post #14





Grupa: Zarejestrowani
Postów: 36
Pomógł: 4
Dołączył: 2.02.2008

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


  1. if($zap2['id'] == $zap['id'])
  2. {
  3. print($zap2['accid']); ///wyswietla dobre id
  4. $SQL->query('UPDATE `accounts` SET `premium_points` = premium_points + 100 WHERE `id` = '.$zap2['accid'].'; '); /// nie działa :/
  5. $SQL->query('UPDATE `smswin` SET `pkt`=1 WHERE `id` = '.$zap2['id'].';'); /// działa za każdym razem
  6. echo 'PUNKTY ZOSTALY DODANE!!!'; /// to samo co wyżej
  7. }

a tak?

Ten post edytował korex 30.06.2011, 09:37:59
Go to the top of the page
+Quote Post
koszar93
post 30.06.2011, 09:32:18
Post #15





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 24.09.2010

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


Nie działa.
Go to the top of the page
+Quote Post
mortus
post 30.06.2011, 09:44:11
Post #16





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

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


Zamień odpowiednią linijkę na to i sprawdź, czy pojawi się błąd:
  1. $SQL->query('UPDATE `accounts` SET `premium_points` = `premium_points` + 100 WHERE `id` = '.$zap2['accid']) or die(mysql_error());
Go to the top of the page
+Quote Post
Magic WWW
post 30.06.2011, 10:07:18
Post #17





Grupa: Zarejestrowani
Postów: 123
Pomógł: 32
Dołączył: 9.09.2010
Skąd: Brzeg

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


Może problem leży w źle wybranej bazie danych (mysql_select_db)? Bo jeśli nie tego jest to wina to już nie mam pomysłów. Potter125 głupio to może być tu tylko i wyłącznie tobie, twoje rozwiązanie problemu jest wręcz wspaniałe.
Go to the top of the page
+Quote Post
koszar93
post 30.06.2011, 13:05:02
Post #18





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 24.09.2010

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


Cytat(mortus @ 30.06.2011, 10:44:11 ) *
Zamień odpowiednią linijkę na to i sprawdź, czy pojawi się błąd:
  1. $SQL->query('UPDATE `accounts` SET `premium_points` = `premium_points` + 100 WHERE `id` = '.$zap2['accid']) or die(mysql_error());

Nie pojawił się żaden błąd.

Baza jest dobrze wybrana ponieważ inne zapytania w tym skrypcie działają bez zarzutów.

var_dump($zap2['accid']) -> string(7) "7222646", id dobre.
Próbowałem także zmienić tą zmienną na int = ".(int) $zap2['accid']." -> nie działa
Go to the top of the page
+Quote Post
Magic WWW
post 30.06.2011, 13:16:19
Post #19





Grupa: Zarejestrowani
Postów: 123
Pomógł: 32
Dołączył: 9.09.2010
Skąd: Brzeg

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


Hmm może problem jest w polu `premium_points`? Jaki jest typ tej kolumny? Prawodłowo musi być liczba całkowita (int)
Go to the top of the page
+Quote Post
koszar93
post 30.06.2011, 13:22:29
Post #20





Grupa: Zarejestrowani
Postów: 44
Pomógł: 0
Dołączył: 24.09.2010

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


premium_points - int(11)
W innych skryptach to zapytanie działa ...
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Wersja Lo-Fi Aktualny czas: 5.07.2025 - 08:45