Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL]zapis zapytan sql
viamarimar
post
Post #1





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


Zapytanie takiej postaci dziala(tak na start)
  1. mysql_query("UPDATE ".$prefix."users,".$prefix."dane SET ".$prefix."dane.dane_dataLogowanie = NOW(),".$prefix."users.users_online='1' WHERE ".$prefix."users.users_login='$user'") or die(mysql_error()); ;


Zapis do zmiennych pewnych danych o uzytkowniku
  1. $ip = $_SERVER['REMOTE_ADDR'];
  2. $host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  3. $system = pokazSystem($_SERVER['HTTP_USER_AGENT']);
  4. $przegladarka = pokazPrzegladarka($_SERVER['HTTP_USER_AGENT']);


i proba wpisania ich do zapytania:

  1. mysql_query("UPDATE ".$prefix."users,".$prefix."dane SET ".$prefix."dane.dane_dataLogowanie = NOW(),".$prefix."dane.dane_ip ='$ip',".$prefix."dane.dane_host ='$host',".$prefix."dane.dane_system ='$system',".$prefix."dane.dane_przegladarka ='$przegladarka',".$prefix."users.users_online='1' WHERE ".$prefix."users.users_login='$user'") or die(mysql_error()); ;

zapytanie powyzej juz nie dziala,

Wechowane wyglada tak:
  1. UPDATE wpl_users,wpl_dane SET wpl_dane.dane_dataLogowanie = NOW(),wpl_dane.dane_ip ='::1',wpl_dane.dane_host ='XXX',wpl_dane.dane_system ='Windows 8.1',wpl_dane.dane_przegladarka ='Firefox',wpl_users.users_online='1' WHERE wpl_users.users_login='root' 


przekazuje wszystkie dane ktore chce jednak nie wpisuje ich do bazy o co chodzi?! pola w bazie sa, dane sa nalezy je tylko upnac, z czym ten "program" ma klopot z czym ja mam klopot?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Jesli nie wywala ci bledu zapytania, znaczy ze ten warunek
wpl_users.users_login='root'
nie jest spelniony
Go to the top of the page
+Quote Post
freewalker
post
Post #3





Grupa: Zarejestrowani
Postów: 90
Pomógł: 4
Dołączył: 14.02.2015

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


dziwię się, że w ogóle pierwsze zapytanie weszło, postaraj się zmienne dać poza zakres cudzyłowia, czyli wszystko na przykładzie:

  1. WHERE ".$prefix."users.users_login='".$user."'")


zamiast:

  1. WHERE ".$prefix."users.users_login='$user'")


zastosuj powyższą uwagę do wszystkich zmiennych, które zawarłeś w treści zapytania a nie rozdzieliłeś ich poza jego zakres

Ten post edytował freewalker 16.02.2015, 15:45:26
Go to the top of the page
+Quote Post
viamarimar
post
Post #4





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


Chodzi o cos takiego?

  1. mysql_query("UPDATE ".$prefix."users,".$prefix."dane SET ".$prefix."dane.dane_dataLogowanie = NOW(),".$prefix."dane.dane_ip ='".$ip."',".$prefix."dane.dane_host ='".$host."',".$prefix."dane.dane_system ='".$system."',".$prefix."dane.dane_przegladarka ='".$przegladarka."',".$prefix."users.users_online='1' WHERE ".$prefix."users.users_login='".$user."'") or die(mysql_error()); ;



to nic nie zmienilo
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A przeczytales mojego posta?

I nie sluchaj freewalkera bo gada glupoty. Nic nie miales poprawiac
Go to the top of the page
+Quote Post
viamarimar
post
Post #6





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


warunek jest spelniony w tabeli wpl_users jest login root i ten root jest zalogowany (inaczej stworzona jest sesja ) z takim loginem
Go to the top of the page
+Quote Post
nospor
post
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Skoro to zapytanie ci nic nie zmienia i nie wypisuje żadnego blędu to:
1) albo ci się wydaje, że to zapytanie wykonujesz
2) albo ci się wydaje, że ten warunek jest spełniony

Teraz poszukaj, które z tych "wydaje" jest w Twoim przypadku spełnione (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
viamarimar
post
Post #8





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


Juz chyba wiem.

Po 1 pierwsze zapytanie ktore powiedzialem ze dziala, tez dziala tylko czesciowo.
Po 2 pan up mial racje i chodzi o warunek, z ktorym mam problem.

  1. WHERE ".$prefix."users.users_login='".$user."'") or die(mysql_error());

czyli czesc z tabeli users sie wykonywala i uzytkownik robil sie online na 1

wiec teraz potrzeba jakis fragment warunku dla czesci tabeli dane

kwestia tego ze w tabeli dane nie mam loginow a jedynie id usera

  1. `dane_users_id` int(11) NOT NULL,
- pole z tabeli dane

Wydaje mi sie ze problem rozwiaze stworzenie innego warunku opierajacego sie o id, czy mam wrzucic id w sesje i na nim operowac? Czy jakos inaczej da sie to rozwiazac? Bo wtedy by chyba bylo ok, zreszta sprawdze to.

  1. UPDATE wpl_users,wpl_dane SET wpl_dane.dane_dataLogowanie = NOW(),wpl_dane.dane_ip ='::1',wpl_dane.dane_host ='XXXX',wpl_dane.dane_system ='Windows 8.1',wpl_dane.dane_przegladarka ='Firefox',wpl_users.users_online='1' WHERE wpl_users.users_id ='1' AND wpl_dane.dane_users_id= '1' ?


przebudowalem zapytanie/logowanie(bo to do tego) zeby opieralo sie tylko o id

  1. mysql_query("UPDATE ".$prefix."users,".$prefix."dane SET ".$prefix."dane.dane_dataLogowanie = NOW(),".$prefix."dane.dane_ip ='".$ip."',".$prefix."dane.dane_host ='".$host."',".$prefix."dane.dane_system ='".$system."',".$prefix."dane.dane_przegladarka ='".$przegladarka."',".$prefix."users.users_online='1' WHERE ".$prefix."users.users_id ='".$user."' AND ".$prefix."dane.dane_users_id= '".$user."' ") OR die(mysql_error());


i nic nadal wykonuje sie zapytanie dla tabeli users dla dane nie ocb?

Ten post edytował viamarimar 16.02.2015, 20:49:43
Go to the top of the page
+Quote Post

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: 22.08.2025 - 11:49