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, 18:32


Vreu







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

Piwa: 72

Respekt: 50

Ostrzeżeń: 40%
Cze??, bawi? si? tworzeniem rejestracji w zapisie bazodanowym. Zrobi?em pierwszy imput, kt?ry pobiera od u?ytkownika has?o do rejestracji - tworzy si? pozycja z nazw? gracza i wpisanym przez niego has?em :

Kod:

mysql_query(mySQLconnection, sprintf("INSERT INTO `ipb_characters` (char_name, haslo) VALUES ('%s', '%s')",pInfo[playerid][player_name], inputtext));


Tutaj wszystko dzia?a - nast?pnie przechodz? do pobrania daty urodzin postaci - jest DIALOG_STYLE_INPUT, kt?ry pojawia si? po pobraniu nowego has?a :

Kod:

new Name[MAX_PLAYER_NAME];
GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
mysql_query(mySQLconnection, sprintf("UPDATE ipb_characters SET char_birth = %d WHERE char_name = %s", strval(inputtext), Name));



Jednak ?adna warto?? nie wpisuje si? do bazy, w polu "char_birth" ca?y czas widnieje "0".

MySQL R39-6, dzi?ki za jak?kolwiek podpowied?!

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-05-18, 21:07


Wafelowski







Wiek: 29
Na forum: 5348 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Pr?bowa?e? bezpo?rednio wklepa? zapytanie w phpmyadmin? Je?eli nie to sprawd? to, kolejna sprawa wyprintuj inputtexta.
Wstaw to gdzie? przed zapytanie i sprawd? logi: printf("inputtext: %d", strval(inputtext));
Je?eli w logach Ci wy?wietli poprawn? warto?? to spr?buj sprintf'a zmieni? na zwyk?ego formata.
Po za tym zamiast pobiera? w k??ko nick gracza zapisz go do tablicy jakiej? i zr?b sobie makro na np. GetPlayerNick(playerid);.

Postaw piwo autorowi tego posta
 

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


Vreu







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

Piwa: 72

Respekt: 50

Ostrzeżeń: 40%
Inputtext dobrze wywala - dostaj? info w MySQL _logs. Co do GetPlayerNick - masz na my?li tak? zmienn? globaln?? Mam zamiar tak? zrobi?, p?ki co - to wiesz, wszystko jest tak roboczo, ?eby ustawi? to w og?le na dzia?anie. Bezpo?rednio do bazy danych na twardo jeszcze nie ma sensu wpisywa?, bo i tak nic to nie da, skoro chc? to wstawia? dynamicznie - a co do format zamiast sprintf - jaka b?dzie w tym r??nica? Szczerze powiedziawszy nie do ko?ca akurat rozumiem tego elementu sk?adni - g?upie pytanie - kto pyta, nie b??dzi! :D Dzi?ki za zainteresowanie i :piwo: !

LOG z b??dem :
[ERROR] CMySQLQuery::Execute - (error #1054) Unknown column 'Adi_Adis' in 'where clause' (Query: "UPDATE ipb_characters SET char_birth = 1989 WHERE char_name = Adi_Adis")

Postaw piwo autorowi tego posta
 

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


String256







Wiek: 33
Na forum: 4247 dni
Posty: 37

Piwa: 10

Respekt: 200
Respekt: 200Respekt: 200

Sprawdz dok?anie zapytanie i strukture twojej bazy danych bo cos mieszasz

Postaw piwo autorowi tego posta
 

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


Wafelowski







Wiek: 29
Na forum: 5348 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Je?eli chodzi o GetPlayerNick to jak gracz si? po??czy pobierasz jego nick poprzerz GetPlayerName(..) i zapisujesz do zmiennej globalnej gracza np. PlayerName[playerid] i sobie tworzysz makro #define GetPlayerNick(%0) PlayerName[%0], takie ma?e u?atwienie.

Co do tego sztywnego wklepywania zapyta? do phpmyadmin to chodzi mi tutaj o przetestowanie czy to zadzia?a (czy wszystko jest dobrze z zapytaniem) i czy nie wywali b??d?w.

Je?eli chodzi o sprintf a format to chodzi?o tu bardziej o przetestowanie czy na zwyk?ym formacie to zadzia?a. Sam u?ywam biblioteki strlib i w niekt?rych przypadkach lepiej si? sprawdza sprintf ni? zwyk?y format.

Jak mo?esz to zr?b screenshota tej tabeli bo co? masz nie tak w strukturze / brak rekordu o tej nazwie.

Postaw piwo autorowi tego posta
 

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


Vreu







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

Piwa: 72

Respekt: 50

Ostrzeżeń: 40%


/Troszk? przerobi?em kod w ramach rozpaczliwych pr?b lol

Kod:

new wiek;
wiek = strval(inputtext);
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);


Kod:

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



/btw to na przyk?ad dzia?a
Kod:

mysql_query(mySQLconnection, sprintf("INSERT INTO `ipb_characters` (char_name, haslo) VALUES ('%s', '%s')",name, inputtext));


Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-05-18, 21:35


Wafelowski







Wiek: 29
Na forum: 5348 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Pr?bowa?e? na sztywno wklei? to zapytanie do phpmyadmin? Tam Ci b??d?w nie wywala? Zamie? tylko %d w zapytaniu na liczb? i %s na ten string Adi_Adis.

Spr?buj jeszcze tak:

Kod:

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


Ostatnio zmieniony przez Wafelowski 2017-05-18, 22:43, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

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


Vreu







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

Piwa: 72

Respekt: 50

Ostrzeżeń: 40%
Dobra - najpierw spr?buj? z tym kodem, co podrzuci?e? - chocia? wydaje mi si?, ?e ju? i tego pr?bowa?em - siedzia?em przy tym wczoraj od 19 do 01:00, troch? pr?b by?o :D Dam zaraz zna?, co z tego wynik?o

[ Dodano: 2017-05-18, 21:50 ]
@ 21:45:33 05/18/17] [ERROR] CMySQLQuery::Execute - (error #1054) Unknown column '1989' in 'field list' (Query: "UPDATE `ipb_characters` SET char_birth = `1989` WHERE char_name = 'Test_Testowy'") -> taki mamy tutaj LOG (tak, poda?em 1989 rok W GRZE - warto?? "dynamicznie" jako tako"dobrze" si? przenios?a)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-05-18, 21:54


Wafelowski







Wiek: 29
Na forum: 5348 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Co? jest nie tak, jeste? w stanie przes?a? mi struktur? bazy danych? Mo?e by? czysta (truncate).

Postaw piwo autorowi tego posta
 

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


Vreu







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

Piwa: 72

Respekt: 50

Ostrzeżeń: 40%
Niezbyt - nie nale?y ona do mnie :(

[ Dodano: 2017-05-18, 22:02 ]
Je?eli o to chodzi - typ char_birth to mediumint(4) - wi?c teoretycznie wszystko si? zgadza. Podstawow? kolumn? jest char_uid
ALE chyba mnie naprowadzi?e?. Tutaj jest napisane, ?e nie ma ustawienia domy?lnego (te "0" mnie zmyli?o) - wi?c mo?e najpierw trzeba te? tutaj da? inserta. Naprowadzi?e? mnie na pomys?, zaraz dam zna?, jak posz?o

Ostatnio zmieniony przez Vreu 2017-05-18, 22:04, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

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


Wafelowski







Wiek: 29
Na forum: 5348 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Yhm, w takim razie pytam jeszcze raz czy zapytanie spr?bowa?e? wykona? poprzez phpmyadmin? Spr?buj zamiast char_name wklepa? char_uid.

Postaw piwo autorowi tego posta
 

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


Vreu







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

Piwa: 72

Respekt: 50

Ostrzeżeń: 40%
@up po edicie! :D
/Co do zapytania - masz na my?li polecenie w konsoli?

Postaw piwo autorowi tego posta
 

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


Wafelowski







Wiek: 29
Na forum: 5348 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Tu wklejasz zapytania: http://i.imgur.com/5AuiFFp.png i je wykonujesz, je?eli s? jakie? b??dy to powinno Ci pokaza?.

Postaw piwo autorowi tego posta
 

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


Vreu







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

Piwa: 72

Respekt: 50

Ostrzeżeń: 40%
@Dobra - m?j pomys? mi nie wypali?
Kod:

mysql_query(mySQLconnection, sprintf("INSERT INTO `ipb_characters` (char_name, haslo, char_gid, char_skin, char_sex, char_birth, char_quittime, char_bw, char_aj, char_renting, char_extra_status, char_arrest, char_online, char_desc, block) VALUES ('%s', '%s', '%d',0,0,0,0,0,0,0,0,0,0,0,0)",name, inputtext, gid));


- chcia?em w warto?ci, kt?re w bazie widniej? jako "brak" ustawi? na "0", wtedy mo?e "UPDATE" by dzia?a?o. Jednak przy rejestracji nadal warto?? "char_birth" nie "aktualizuje" si?.

Czy takie zapytanie powinno wygl?da? tak? :

UPDATE `ipb_characters` SET `char_birth`= 1989 WHERE `char_name`= Test_Testowysb

Je?eli jest dobrze, to pokazuje taki b??d:

#1054 - Nieznana kolumna 'Test_Testowysb' w where clause

Postaw piwo autorowi tego posta
 

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


Wafelowski







Wiek: 29
Na forum: 5348 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Powinno wygl?da? tak:

Kod:

UPDATE `ipb_characters` SET `char_birth`= 1989 WHERE `char_name`= 'Test_Testowysb'


String dajesz w apostrofach 'Test_Testowysb'.

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