Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2017-05-18, 22:44


Vreu







Wiek: 28
Na forum: 4823 dni
Posty: 24
Nick w MP: Vreu

Piwa: 72

Respekt: 50

Ostrzeżeń: 40%
Wesz?o - pole dosta?o warto?? 1989

mysql_query(mySQLconnection, sprintf("UPDATE `ipb_characters` SET `char_birth` = `%d` WHERE char_name = `%s`", wiek, name));

ale to ju? nie wchodzi

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-05-18, 22:55


Wafelowski







Wiek: 29
Na forum: 5347 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Bo z?y znak da?e? ma by? ' a nie `

Kod:

UPDATE `ipb_characters` SET `char_birth` = %d WHERE `char_name` = '%s'


Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-05-18, 23:03


Vreu







Wiek: 28
Na forum: 4823 dni
Posty: 24
Nick w MP: Vreu

Piwa: 72

Respekt: 50

Ostrzeżeń: 40%
z ' te? nie dzia?a?o :D

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-05-18, 23:06


Wafelowski







Wiek: 29
Na forum: 5347 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Czyli jak to jest z poziomu php Ci wchodzi a z poziomu serwera ju? nie? Co? masz namieszane, ja ju? si? pogubi?em w tym. To jak to jest teraz dzia?a czy nie bo napisa?e? ?e z tym znakiem ci nie dzia?a?o, musi to dzia?a? mo?e z inn? baz? danych si? ??czy? na serwerze czy co?

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Vreu
Wysłany: 2017-05-18, 23:53


Vreu







Wiek: 28
Na forum: 4823 dni
Posty: 24
Nick w MP: Vreu

Piwa: 72

Respekt: 50

Ostrzeżeń: 40%
Dobra - posiedzia?em i posz?o z Twoj? opcj?, tzn

Kod:

UPDATE `ipb_characters` SET `char_birth` = %d WHERE `char_name` = '%s'


pokmini?em i w ko?cu jako? posz?o - wielkie dzi?ki, ALE mam jeszcze jedno pytanie - jest takie co? jak ID. Chcia?bym, ?eby funkcja znalaz?a najwi?ksze ID z bazy i dodatkowo sprawdza?a czy dane pole ju? istnieje (tzn ?eby nie za?o?y? dw?ch postaci o tej samej nazwie).

Do znalezienia ID trzeba u?y? klasycznie p?tli FOR, czy jednak mysql przewiduje tak? opcje i mo?e to sobie numerowa? po kolei?

Jaka funkcja jest do sprawdzenia, czy istnieje ju? identycznie wype?nione pole?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-05-19, 00:15


Wafelowski







Wiek: 29
Na forum: 5347 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Co do tego ID to jest co? takiego jak Auto Increment, a w??cza si? to co? tak: http://i.imgur.com/5AWdicx.png

Je?eli chodzi o sprawdzanie czy ju? istnieje takie konto / posta? to robi si? to na takiej zasadzie ?e gdy gracz po??czy si? z serwerem to zostaje wys?ane zapytanie do bazy danych i na podstawie zwr?conych rekord?w jest okre?lane istnienie konta lub postaci. Tu masz przyk?ad: http://gtao.pl.com/showthread.php?t=305994 . Wszystko jest na necie tylko trzeba tego poszuka?.

Co do samego MySQL je?eli ju? si? zacz??e? interesowa? pluginem od BlueG to przejd? na nowsz? wersje ( https://github.com/pBlueG/SA-MP-MySQL/releases ). Plugin jest ?wietny pod wzgl?dem mo?liwo?ci, radz? ci poczyta? o y_inline ( http://gtao.pl.com/showthread.php?t=548986 ) oraz ORM-ach ( http://gtao.pl.com/showthread.php?t=461766 ).

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-05-19, 21:04


Vreu







Wiek: 28
Na forum: 4823 dni
Posty: 24
Nick w MP: Vreu

Piwa: 72

Respekt: 50

Ostrzeżeń: 40%
Dzi?ki, Twoje rady du?o mi pomog?y - znajduje mi posta?, wszystko super, teraz chc? si? zalogowac, do tego u?ywam :

Kod:

new Hash2[80];
new rows2, fields2;
mysql_query(mySQLconnection, sprintf("SELECT haslo FROM ipb_characters WHERE char_name = '%s' LIMIT 1", pInfo[playerid][player_name]));
cache_get_data(rows2, fields2);
format(Hash2, sizeof(Hash2), "%s%s", MD5_Hash(gInfo[playerid][global_salt]), MD5_Hash(inputtext));
format(Hash2, sizeof(Hash2), "%s", MD5_Hash(Hash2));
if(rows2 == Hash2)
...


Jednak wyskakuje mi "array must be indexed" w warunku do Hash2. Pr?bowa?em zrobi? Hash2[0], co w sumie by?o do?? g?upim pomys?em - tak czy siak nic nie da?o.
Jakie? pomys?y?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-05-19, 21:32


Wafelowski







Wiek: 29
Na forum: 5347 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Umm, to dlatego ?e cache_get_data(..) zwraca ci ilo?? rekord?w oraz p?l. Dodam ?e je?eli chcesz korzysta? z cache to musisz te? przypisa? to zapytanie do zmiennej z tagiem Cache a jak ju? przypiszesz dane z funkcji cache do zmiennych to cache usuwasz przez cache_delete(..). Co do por?wnywania dw?ch string?w s?u?y funkcja strcmp.

Pawn
new Password[80],
    Hash2[80];

new Cache:result mysql_query(mySQLconnectionsprintf("SELECT haslo FROM ipb_characters WHERE char_name = '%s' LIMIT 1"pInfo[playerid][player_name]), true);
cache_get_field_content(0"haslo"Password);
cache_delete(result);

format(Hash2sizeof(Hash2), "%s%s"MD5_Hash(gInfo[playerid][global_salt]), MD5_Hash(inputtext)); 
format(Hash2sizeof(Hash2), "%s"MD5_Hash(Hash2)); 

if(!strcmp(PasswordHash2))
{
 // Sie zalogowa? 
}


R?wnie? zmieni?bym to MD5 na SHA256 ( http://wiki.sa-mp.com/wiki/SHA256_PassHash ).

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Vreu
Wysłany: 2017-05-19, 21:39


Vreu







Wiek: 28
Na forum: 4823 dni
Posty: 24
Nick w MP: Vreu

Piwa: 72

Respekt: 50

Ostrzeżeń: 40%
Dzi?ki - ju? sprawdzam - doszed?em do tego, ?e por?wnywanie dw?ch string?w to strcmp (dzi?ki gtao.pl), jednak nadal wyrzuca?o b??dy. Zaraz sprawdz?, czy wszystko ?miga :)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-05-19, 21:55


Wafelowski







Wiek: 29
Na forum: 5347 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Wyrzuca?o ci b??dy bo rows2 to nie string (tekst) tylko int (liczba).

Postaw piwo autorowi tego posta
 

 
Tagi: aktualizacja :: wartości :: bazie :: danych
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » Aktualizacja wartości w bazie danych Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku