Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

ranking gracza SQL


  • Zamknięty Temat jest zamknięty
2 odpowiedzi w tym temacie

#1 AmD

    aemde

  • Użytkownik

Reputacja: 71
Pomocny

  • Postów:500
  • Steam:steam
  • Imię:Dariusz
  • Lokalizacja:Częstochowa
Offline

Napisano 18.02.2011 00:09

Witam,

Robię ranking na swój serwer lecz zamiast pokazywać poprawnej wartości daje inna (jakby losową)...
przykład: moja wartość kolumny jest największa więc mój ranking powinien mieć 1, a mam 3 jak każdy...

Kod:

new count = 0

public Rank_SQL(id) {

new Data[1]
Data[0] = id

new szTemp[512]
format(szTemp,charsmax(szTemp),"SELECT COUNT(*) FROM amd_sklep WHERE `marzenia` > %d",marzenia[id])
SQL_ThreadQuery(g_SqlTuple,"Sql_Rank",szTemp,Data,1)

return PLUGIN_CONTINUE
}

public Sql_Rank(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) {
if(FailState){
log_amx("SQL Error: %s (%d)", Error, Errcode)
return PLUGIN_HANDLED
}

count = SQL_ReadResult(Query,0)
if(count == 0)
count = 1

return PLUGIN_HANDLED
}

wyświetlam ranking w hudmessage [ show_hudmessage(id, "Ranking Gracza %d", count) ]

Gdzie popełniłem błąd?
Pozdrawiam!

Użytkownik AmD edytował ten post 18.02.2011 00:10

  • +
  • -
  • 0

#2 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 18.02.2011 09:25

z kodu wynika tylko 1 błąd: jeśli nade mną jest 10 osób to jestem 11
to
if(count == 0)
                count = 1
powinno wyglądać tak
count++


ale to co daje w wyniku to zapytanie zależy wyłącznie od danych w tabeli. Jak masz dostęp do phpmyadmin lub konsoli MySQLa to pokaż
SELECT * FROM amd_sklep

  • +
  • -
  • 0

#3 AmD

    aemde

  • Autor tematu
  • Użytkownik

Reputacja: 71
Pomocny

  • Postów:500
  • Steam:steam
  • Imię:Dariusz
  • Lokalizacja:Częstochowa
Offline

Napisano 18.02.2011 19:50

działa :)

oto SS z wykonanego zapytania:
Dołączona grafika

Oraz mam problem, gdyż tworzy mi po 4 rekordy na gracza, a chce by był jeden na gracza, co jest najczęściej przyczyną takich problemów?
wydaje mi się że błąd powoduje funkcja zabezpieczającą przed niepoprawnymi nickami które będą wysyłane do bazy:
replace_all(PlayerNick, 31, "\", "")
		replace_all(PlayerNick, 31, "`", "\`")
		replace_all(PlayerNick, 31, "'", "\'")
jak będzie trzeba mogę zamieścić Save/Load rekordów graczy

Użytkownik AmD edytował ten post 18.02.2011 19:52

  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych