Wie kann man mit R34 Dinge aus einer Datenbank auslesen?
mfg
Wie kann man mit R34 Dinge aus einer Datenbank auslesen?
mfg
new query[128];
format(query,128,"SELECT wasduauslesenmöchtest FROM tabellenname WHERE Name='%s'",Name(playerid));
mysql_tquery(handle,query,"callbacknamen","d",playerid);
public callbacknamen(playerid)
{
new row,field;
cache_get_data(row,field,handle);
if(row == 1)/* wasduauslesenmöchtest wurde gefunden */
else if(row==0)/* wasduauslesenmöchtest wurde nicht gefunden */
return 1;
}
So.
Ich hoffe du kannst damit was anfangen, wenn nicht, dann schreib es noch einmal
new row,field; cache_get_data(row,field,handle);
Wie lese ich Strings aus?
new query[128];
format(query,128,"SELECT wasduauslesenmöchtest FROM tabellenname WHERE Name='%s'",Name(playerid));
mysql_tquery(handle,query,"callbacknamen","d",playerid);
public callbacknamen(playerid)
{
new row,field,string[128];
cache_get_data(row,field,handle);
if(row == 1)cache_get_field_content(0,"wasduauslesenmöchtest",string,handle);
else if(row==0)/* wasduauslesenmöchtest wurde nicht gefunden */
return 1;
}
So
cache_get_field_content(0,"wasduauslesenmöchtest",string,handle);
Muss ich für jede neue Sache die ich auslesen möchte einen String erstellen?
mfg
Ja, du kannst ja nicht alles in einen speichern, da das sonst alles überschrieben wird.
Wenn du Strings vom Account laden möchtest, dann kannst du das auch einfach alles in einem Enum packen
Zum Beispiel so:
enum eSpieler{
Geschlecht[20]
};
new Spieler[MAX_PLAYERS][eSpieler];
new query[128];
format(query,128,"SELECT wasduauslesenmöchtest FROM tabellenname WHERE Name='%s'",Name(playerid));
mysql_tquery(handle,query,"callbacknamen","d",playerid);
public callbacknamen(playerid)
{
new row,field,string[128];
cache_get_data(row,field,handle);
if(row == 1)cache_get-field_content(0,"Geschlecht",Spieler[playerid][Geschlecht],handle);
else if(row==0)/* wasduauslesenmöchtest wurde nicht gefunden */
return 1;
}
Alles anzeigenJa, du kannst ja nicht alles in einen speichern, da das sonst alles überschrieben wird.
Wenn du Strings vom Account laden möchtest, dann kannst du das auch einfach alles in einem Enum packen
Zum Beispiel so:
enum eSpieler{
Geschlecht[20]
};
new Spieler[MAX_PLAYERS][eSpieler];
new query[128];
format(query,128,"SELECT wasduauslesenmöchtest FROM tabellenname WHERE Name='%s'",Name(playerid));
mysql_tquery(handle,query,"callbacknamen","d",playerid);
public callbacknamen(playerid)
{
new row,field,string[128];
cache_get_data(row,field,handle);
if(row == 1)cache_get-field_content(0,"Geschlecht",Spieler[playerid][Geschlecht],handle);
else if(row==0)/* wasduauslesenmöchtest wurde nicht gefunden */
return 1;
}
So richtig funktioniert es nicht
Also er liest nur den SpielerNamen den Rest nicht..
public LoadPlayerBan(playerid)
{
new row,field,str[264];
cache_get_data(row,field,mycon);
if(row == 1)
{
cache_get_field_content(0,"Admin",bUser[playerid][bAdmin],mycon);
cache_get_field_content(0,"Grund",bUser[playerid][bGrund],mycon);
cache_get_field_content(0,"Datum",bUser[playerid][bDatum],mycon);
cache_get_field_content(0,"Uhrzeit",bUser[playerid][bUhrzeit],mycon);
format(str,sizeof(str),"Dieser Account ist gebannt\n\nName: %s\nAdmin: %s\nGrund: %s\nDatun: %s\nUhrzeit: %s\n\n Falls ein Fehler aufliegt, schreibe einen Entbann Antrag im Forum!",User[playerid][Username],bUser[playerid][bAdmin],bUser[playerid][bGrund],bUser[playerid][bDatum],bUser[playerid][bUhrzeit]);
ShowPlayerDialog(playerid,Dialog_Ban,DIALOG_STYLE_MSGBOX,"Spieler gebannt",str,"Schliessen","");
Kick(playerid);
}else if(row == 0)
{
}
return 1;
}
Ist Admin ein Strings (Varchar) oder ein Int?
Integers musst du so auslesen:
Spieler[playerid][Admin]=cache_get_field_content_int(0,"Admin",handle);
Als Beispiel
Ist Admin ein Strings (Varchar) oder ein Int?
Integers musst du so auslesen:
Spieler[playerid][Admin]=cache_get_field_content_int(0,"Admin",handle);
Als Beispiel
Ist Varchar
Falls das nicht klappt, dann mach das so:
format(Spieler[playerid][Admin],sizeof(Spieler[playerid][Admin],"%s",cache_get_field_content(0,"Admin",Spieler[playerid][Admin],handle);
Ist glaub ich nicht so gut, aber vielleicht bringt das ja was.
Hier nochmal OnplayerConnect
public OnPlayerConnect(playerid)
{
new query[60 + MAX_PLAYER_NAME],query2[128];
GetPlayerName(playerid,User[playerid][Username],MAX_PLAYER_NAME);
mysql_format(mycon, query, sizeof(query), "SELECT COUNT(*) AS `count` FROM `User` WHERE `Name` = '%e'",User[playerid][Username]);
mysql_function_query(mycon, query, true, "LoadPlayerDataSequence","dd",playerid,1);
mysql_format(mycon,query2, sizeof(query2), "SELECT * FROM `Bannedplayer` WHERE `Name` = '%e'",User[playerid][Username]);
mysql_function_query(mycon, query2, true, "LoadPlayerBan","dd",playerid,1);
return 1;
}
Pawn:
Leider nein nur Errors
Zeig mal deinen Enum
Falls das nicht klappt, dann mach das so:
format(Spieler[playerid][Admin],sizeof(Spieler[playerid][Admin],"%s",cache_get_field_content(0,"Admin",Spieler[playerid][Admin],handle);
Ist glaub ich nicht so gut, aber vielleicht bringt das ja was.
Zeig mal deinen Enum
enum UserBanData
{
bAdmin[34],
bGrund[34],
bDatum[11],
bUhrzeit[11]
new bUser[MAX_PLAYERS][UserBanData];
}
Bekommst du ein Error in der mysql.log?
Bekommst du ein Error in der mysql.log?
Ne xd
Wie steht es denn in der Datenbank? Also sind da die Werte eingetragen?
Wie steht es denn in der Datenbank? Also sind da die Werte eingetragen?
Ja
Mach unter OnPlayerConnect mal '%s' anstatt '%e'
Mach unter OnPlayerConnect mal '%s' anstatt '%e'
Leider auch nicht :o
So wird das ganze auch nie funktionieren
cache_get_field_content(0,"Admin",bUser[playerid][bAdmin],mycon);
cache_get_field_content(0,"Grund",bUser[playerid][bGrund],mycon);
cache_get_field_content(0,"Datum",bUser[playerid][bDatum],mycon);
cache_get_field_content(0,"Uhrzeit",bUser[playerid][bUhrzeit],mycon);
Der Grund ist , die länge der strings ist optional und wird durch sizeof festgelegt, dass ganze funktioniert jedoch nicht so in verbindung bei einem array mit einem enum.
Deshalb musst du die länge optional angeben, das sieht dann so aus:
Syntax
cache_get_field_content(row, const field_name[], destination[], connectionHandle = 1, max_len = sizeof(destination));
cache_get_field_content(0,"Admin",bUser[playerid][bAdmin],mycon,34);