Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL]zapis zapytan sql
Forum PHP.pl > Forum > Przedszkole
viamarimar
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?
nospor
Jesli nie wywala ci bledu zapytania, znaczy ze ten warunek
wpl_users.users_login='root'
nie jest spelniony
freewalker
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
viamarimar
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
nospor
A przeczytales mojego posta?

I nie sluchaj freewalkera bo gada glupoty. Nic nie miales poprawiac
viamarimar
warunek jest spelniony w tabeli wpl_users jest login root i ten root jest zalogowany (inaczej stworzona jest sesja ) z takim loginem
nospor
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 smile.gif
viamarimar
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?
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.