Wie lese ich den Wert aus der Datenbank aus den ich mit VARCHAR deklariere ?
Ich verwende MySQL R41
Wie lese ich den Wert aus der Datenbank aus den ich mit VARCHAR deklariere ?
Ich verwende MySQL R41
Soweit ich weiß mit der Funktion "cache_get_value_name".
Soweit ich weiß mit der Funktion "cache_get_value_name".
Dachte ich auch ist aber leider nicht der Fall.
Ich kriege keine Warnings oder so angezeigt aber sobald ich connecte und mir der Ban Dialog angezeigt wird, wird mir nicht das angezeigt was eigentlich gewünscht ist
Zeig mal dein Code.
forward OnUserLogin(playerid);
public OnUserLogin(playerid)
{
//Query wurde ausgeführt und das Ergebnis im Cache gespeichert
new rows;
cache_get_row_count(rows);
if(rows == 0)
{
//Der Spieler hat ein falsches Passwort eingegeben
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Bitte logge Dich ein:\n{FF0000}Falsches Passwort!", "Ok", "Abbrechen");
}
else
{
//Es existiert ein Ergebnis, das heißt der Spieler hat das richtige Passwort eingegeben
//Wir lesen nun die erste Zeile des Caches aus (ID 0)
cache_get_value_name_int(0, "id", PlayerInfo[playerid][p_id]);
cache_get_value_name_int(0, "level", PlayerInfo[playerid][pLevel]);
cache_get_value_name_int(0, "money", PlayerInfo[playerid][pMoney]);
cache_get_value_name_int(0, "kills", PlayerInfo[playerid][pKills]);
cache_get_value_name_int(0, "deaths", PlayerInfo[playerid][pDeaths]);
cache_get_value_name_int(0, "mats",PlayerInfo[playerid][pMats]);
cache_get_value_name_int(0, "matss",PlayerInfo[playerid][pMatss]);
cache_get_value_name_int(0, "drogen",PlayerInfo[playerid][pDrogen]);
cache_get_value_name_int(0, "drogens",PlayerInfo[playerid][pDrogens]);
cache_get_value_name_int(0, "matskauf",PlayerInfo[playerid][pMatskauf]);
cache_get_value_name_int(0, "job",PlayerInfo[playerid][pJob]);
cache_get_value_name_int(0, "drogensamen",PlayerInfo[playerid][pDrogensamen]);
cache_get_value_name_int(0, "dunger",PlayerInfo[playerid][pddunger]);
cache_get_value_name_int(0, "perso",PlayerInfo[playerid][pPerso]);
cache_get_value_name_int(0, "paytime",PlayerInfo[playerid][pPaytime]);
cache_get_value_name_int(0, "respektpunkte",PlayerInfo[playerid][pRespektpunkte]);
cache_get_value_name_int(0, "konto",PlayerInfo[playerid][pKonto]);
cache_get_value_name_int(0, "jobmoney",PlayerInfo[playerid][pJobMoney]);
cache_get_value_name_int(0, "prpg",PlayerInfo[playerid][pRPg]);
cache_get_value_name_int(0, "banned",PlayerInfo[playerid][pBanned]);
cache_get_value_name_int(0, "alevel",PlayerInfo[playerid][admin_level]);
cache_get_value_name_int(0, "scheine",PlayerInfo[playerid][Scheine]);
cache_get_value_name(0,"banner",PlayerInfo[playerid][pBanner]);
PlayerInfo[playerid][pLoggedIn] = true;
SendClientMessage(playerid, 0x00FF00FF, "[Konto] Eingeloggt.");
GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
loadPlayerCars(playerid);
SpawnPlayer(playerid);
}
return 1;
}
Das mit pBanner geht natürlich nicht. Das war mir schon im Kopf und dir auch
Sollte aber so klappen, ohne das "_int" dahinter, siehe Wiki:
new dest[128];
cache_get_value_name(0, "name", dest);
printf("The value in the column 'name' is '%s'.", dest);
Sollte aber so klappen, ohne das "_int" dahinter, siehe Wiki:
new dest[128];cache_get_value_name(0, "name", dest);printf("The value in the column 'name' is '%s'.", dest);
Leider nicht. Der Print spuckt auch nichts dolles aus
cache_get_value_name(0,"banner",PlayerInfo[playerid][pBanner], 32); // 32 mit größe von pBanner ersetzen
Versuchs mal so