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

Wysłany: 2014-08-22, 19:47


Matrikx







Wiek: 35
Na forum: 4459 dni
Posty: 21
Nick w MP: TheMatrikx



Respekt: 50

Witam mam stock kt?rym chce sprawdzi? czy dany wiersz istnieje, lecz co? jest z nim nie tak poniewa? nic nie sprawdza.

Pawn
stock IsPlayerPPojazd(playerid)
{
    format(buffersizeof(buffer), "SELECT `Name` FROM `Pojazdy` WHERE `Name`='%s'"Gname(playerid));
    mysql_query(buffer);
    mysql_store_result();
    if(mysql_num_rows())
    {
        return 1;
    }
    mysql_free_result();
    return 0;
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-08-22, 21:14


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Zapytanie samo w sobie jest dobre - funkcja powinna dzia?a?. Sprawd?, czy w logach MySQL (mysql_log.txt) nie masz ?adnego b??du zwi?zanego z tym zapytaniem. Przed sprawdzeniem log?w upewnij si?, ?e masz zapis log?w w??czony (funkcja mysql_init w gamemodzie).

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-08-23, 18:27


Matrikx







Wiek: 35
Na forum: 4459 dni
Posty: 21
Nick w MP: TheMatrikx



Respekt: 50

Problem ze sprawdzaniem rozwi?zany, mo?ecie mi jeszcze powiedzie? czemu ten stock nie zapisuje ?
Pawn
stock ZapiszPPojazd(playerid)
{
    format(buffersizeof(buffer), "UPDATE `Pojazdy` SET `Model`, `PPaliwo`, `Color1`, `Color2`, `Specjalne`, `Stan`, `PosX`, `PosY`, `PosZ`, `PosFace` WHERE `Name`='%d'",
    PPojazd[playerid][Model], 
    PPojazd[playerid][PPaliwo], 
    PPojazd[playerid][Color1], 
    PPojazd[playerid][Color2], 
    PPojazd[playerid][Specjalne], 
    PPojazd[playerid][Stan], 
    PPojazd[playerid][PosX],
    PPojazd[playerid][PosY],
    PPojazd[playerid][PosZ],
    PPojazd[playerid][PosFace],
    Gname(playerid));
    mysql_query(buffer);
    return 1;
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-08-23, 21:31


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Kod:

"UPDATE `Pojazdy` SET `Model`, `PPaliwo`, `Color1`, `Color2`, `Specjalne`, `Stan`, `PosX`, `PosY`, `PosZ`, `PosFace` WHERE `Name`='%d'"


B??dny format zapytania - nick gracza jest stringiem (ci?giem znak?w), zamiast %d (integer) daj %s (string)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-08-24, 15:16


Matrikx







Wiek: 35
Na forum: 4459 dni
Posty: 21
Nick w MP: TheMatrikx



Respekt: 50

Naprawi?em b??d kt?ry napisa?e?, lecz nadal nie dzia?a.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-08-24, 15:50


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
M?j b??d - to jest UPDATE, nie SELECT. Musisz te? poda? warto?ci, bo ich nie masz w zapytaniu (brakuje ' = warto??'). Powinno to wygl?da? mniej wi?cej tak

Kod:

format(buffer, sizeof(buffer), "UPDATE `Pojazdy` SET `Model` = %d, `PPaliwo` = %.1f (nie wiem czy to float czy integer), `Color1` = %d, `Color2` = %d, `Specjalne`, `Stan`, `PosX`, `PosY`, `PosZ`, `PosFace` WHERE `Name`='%d'",
PPojazd[playerid][Model],
PPojazd[playerid][PPaliwo],
PPojazd[playerid][Color1],
PPojazd[playerid][Color2],
PPojazd[playerid][Specjalne],
PPojazd[playerid][Stan],
PPojazd[playerid][PosX],
PPojazd[playerid][PosY],
PPojazd[playerid][PosZ],
PPojazd[playerid][PosFace],
Gname(playerid));


?eby zaktualizowa? rekord w tabeli musisz nada? warto?? - po prostu nie masz %d/%f (zapomnia?em jak to si? nazywa, ale wiadomo o co chodzi).

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-08-24, 16:23


Matrikx







Wiek: 35
Na forum: 4459 dni
Posty: 21
Nick w MP: TheMatrikx



Respekt: 50

Hmm ok, dzieki ? mo?esz mi powiedzie? jeszcze jak zapisywa? warto?? bool do mysql ?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2014-08-24, 16:28


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
W kolumnie ustawiasz typ bool (albo tinyint, ale najpierw sprawd? bool), a nast?pnie formatujesz zmienn? jako %b

Kod:

UPDATE tabela SET kolumna = %b WHERE ...


Wydaje mi si?, ?e mo?esz boola nawet zapisywa? jako integera (zwyk?a liczba), bo bool przyjmuje tylko warto?ci 0 (false) i 1 (true). Mo?esz jeszcze zamieni? boola na integer i wtedy zapisa? jako integer

Kod:

new theBool = !!TwojBool; //Funkcja IntToBool (negacja negacji)
UPDATE tabela SET kolumna = %d WHERE ... (w formacie u?ywasz nowej zmiennej theBool)


Mo?liwo?ci jest sporo, znajdziesz co? dla siebie.

Postaw piwo autorowi tego posta
 

 
Tagi: mysql
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN 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