Hallo zusammen
wollte bei meinen Lizensen True bzw false auslesen
gibt es da einen speziellen Befehl
LG
Hallo zusammen
wollte bei meinen Lizensen True bzw false auslesen
gibt es da einen speziellen Befehl
LG
Versuche es mit cache_get_row(zeile,spalte,tmp) auszulesen, und dann:
deineBoolVar = !!strval(tmp);
@ Jeffry also so ???
sInfo[playerid][autoschein] = !!strval(tmp);
// wie muss ich denn tmp definieren?
Ja, so.
Zwecks tmp: http://wiki.sa-mp.com/wiki/MySQL/R33#cache_get_row
Mein tmp ist das dest im Link.
Gegebenenfalls mit http://wiki.sa-mp.com/wiki/MySQL/R33#cache_get_field_content arbeiten, falls du es lieber über den Spaltenname machst.
Jeffry, entschuldige ich komm da irgendwie nicht hinterher
bisher habe ich immer mit
Variable = cache_get_field_content INT bzw Float
gearbeitet
muss ich dann nicht irgendwie den INT auslesen und den bei 1 auf True bzw bei 0 auf false setzen?
dass ich das manuell mache?
mit dem anderen befehl komme ich irgendwie net klar
bei der Row also reihe muss ich doch dann noch den namen definieren also aus welcher oder nicht?
Zeig mal eine Beispielzeile aus deinem Code wie du es bisher gemacht hast, von einem anderen Stat, irgendeine cache_get_field_content vom Laden der Statistiken.
Variable = !!cache_get_field_content_INT
sInfo[playerid][PaydayTime] = cache_get_field_content_int(0,"PaydayTime",dbhandle);
sInfo[playerid][db_id] = cache_get_field_content_int(0,"id",dbhandle);
sInfo[playerid][spawnchange] = cache_get_field_content_int(0,"spawnchange",dbhandle);
//bool:autoschein
//bool:rollerschein,
//bool:motorrschein,
//bool:bootsschein,
//bool:flugschein,
sInfo[playerid][autoschein] = cache_get_field_content_int(0,"autoschein",dbhandle);
//sInfo[playerid][autoschein] = !!strval(tmp);
// wie muss ich denn tmp definieren?
sInfo[playerid][rollerschein] = cache_get_field_content_int(0,"rollerschein",dbhandle);
sInfo[playerid][motorrschein] = cache_get_field_content_int(0,"motorrschein",dbhandle);
sInfo[playerid][bootsschein] = cache_get_field_content_int(0,"bootsschein",dbhandle);
sInfo[playerid][flugschein] = cache_get_field_content_int(0,"flugschein",dbhandle);
ein stück was funktioniert und den rest dazu
ein stück was funktioniert und den rest dazu
sInfo[playerid][autoschein] = !!cache_get_field_content_int(0,"autoschein",dbhandle);
Theoretisch reicht es, wenn du den Wert als Integer speicherst und ausliest. 0/1 ist ja das selber wie false/true. Den Wert kannst du dann in deiner Boolvar speichern. Müsste eig. Ohne Konvertierung etc funktionieren, ist aber nur eine Vermutung.
sooo??
sInfo[playerid][rollerschein] = !! cache_get_field_content_int(0,"rollerschein",dbhandle);
sInfo[playerid][motorrschein] = !! cache_get_field_content_int(0,"motorrschein",dbhandle);
sInfo[playerid][bootsschein] = !! cache_get_field_content_int(0,"bootsschein",dbhandle);
sInfo[playerid][flugschein] = !! cache_get_field_content_int(0,"flugschein",dbhandle);
muss ich dann in der DB INT oder Boolean definieren?
Boolean in der Tabelle, und dann so:
new tmp[32];
cache_get_field_content(0,"autoschein",dbhandle); sInfo[playerid][autoschein] = !!strval(tmp);
cache_get_field_content(0,"motorrschein",dbhandle); sInfo[playerid][motorrschein] = !!strval(tmp);
//...
EDIT:
Oder so:
sInfo[playerid][rollerschein] = !!cache_get_field_content_int(0,"rollerschein",dbhandle);
Dürfte beides gehen. Ich bevorzuge aber die erste Variante.
wenn es gerade um das geht hätte ich auch eine kleine Frage kurz, wird Stormi wahrscheinlich auch interessieren:
format(query,sizeof(query),"UPDATE user SET eingeloggt='%i' WHERE id='%i'",sInfo[playerid][eingeloggt],sInfo[playerid][db_id]);
wenn ich eingeloggt jetzt zu einem Bool ändere, wie heißt das dann: '%?'
Also das i für Integer wird dann zu ?
cache_get_field_content(0,"email",sInfo[playerid][e_mail],dbhandle,64);
Bei 64 die Länge rein schreiben, die du im enum bei e_mail stehen hast.
@Schlaubi:
Du kannst %d/%i lassen, da BOOLEAN meistens zu TINYINT umgewandelt wird, und da ist alles was nicht 0 ist entsprechend true, und 0 ist false. Ein true-Boolean wird in %d zu 1, ein false zu 0.
EDIT: (Post unten)
@Stormi25: Da dein Problem behoben ist, wäre es super, wenn du den Thread als erledigt markierst. Danke!
@Schlaubi
ich vermute mal so
format(query,sizeof(query),"UPDATE user SET eingeloggt='%i' WHERE id='%i'",sInfo[playerid][eingeloggt],sInfo[playerid][db_id]);
zu
new einlog;
if(sInfo[playerid][eingeloggt] == true)
einlog = 1;
else
einlog = 0;
format(query,sizeof(query),"UPDATE user SET eingeloggt='%i' WHERE id='%i'",sInfo[playerid][eingeloggt],sInfo[playerid][db_id]);
so würde ich es jetzt im Zweifel schreiben