Warum ist in dieser Zeile ein tag mismatch?
Weil du new label anstatt new Text3D:label geschrieben hast
Schreibe das mal ganz oben in die Funktion:
if(strlen(dStr) != 10 || dStr[2] != '.' || dStr[5] != '.') return false;
Warum ist in dieser Zeile ein tag mismatch?
Weil du new label anstatt new Text3D:label geschrieben hast
Schreibe das mal ganz oben in die Funktion:
if(strlen(dStr) != 10 || dStr[2] != '.' || dStr[5] != '.') return false;
SetTimerEx("DeleteDeathLabel", 10000, 0, "dd", pickup, label);
Wieder tag mismatch.. xD
Jaa, da kannst du keine Tags übergeben
SetTimerEx("DeleteDeathLabel", 10000, 0, "dd", pickup, _:label);
@Jeffry hat mir gesagt das ich es so speichern soll (Geburtsdatum) ich verstehe es aber nicht warum die 11?
Kriege ein out of bounds error
Im Playerenum habe ich das auch so abgespeichert pGeburtsdatum[11],
Muss ich auf etwas achten wenn ich die Variable anzeige in den Stats z.B
Und wie speicher ich den Wert ,
hat mir gesagt das ich es so speichern soll (Geburtsdatum) ich verstehe es aber nicht warum die 11?
Du speicherst einfach einen String.
Die 11, weil ein Geburstag wie z.B. 00.00.0000 immer exakt 10 Zeichen lang ist + NULL Byte macht also genau 11 Zeichen
Deshalb musst du das mit dem format benutzen und im bei mysql einfach %s verwenden, das war schon richtig, so wie du z.B. den Namen des Spielers speicherst
Das 2 Argument bei format ist einfach nur die Länge, da ein Datum nicht mehr als 11 Zeichen haben kann, ist es auf 11 begrenzt.
pInfo[playerid][pGeburtsdatum]=strval(inputtext);
Das [11] kannst du weglassen, das ist einfach nur wie viele Cells der String zur Verfügung hat.
Zum speichern:
mysql_format(db,query,sizeof(query),"UPDATE user SET Geburtsdatum = '%s' WHERE name = '%s'",pInfo[playerid][pGeburtsdatum],GetName(playerid));
mysql_tquery(db,query);
pInfo[playerid][pGeburtsdatum]=strval(inputtext);
Nein, nicht strval nutzen.
Das ist ja keine Zahl, sondern ein String.
Dementsprechend ist
format(PlayerInfo[playerid][e_Birthday], 11, inputtext);
richtig.
new q[256];
mysql_format(db,q,sizeof(q),"INSERT user SET Geburtsdatum = '%s' WHERE Useername = '%s'",pInfo[playerid][pGeburtsdatum],Spielername(playerid));
mysql_tquery(db,q);
In der Console wird @ angezeigt als string, werde dannach auch nicht gespawnt. Irgendwas stimmt nicht.
http://prntscr.com/l97c25
[00:20:53] [DEBUG] mysql_format(1, 0x02F93D68, 256, "INSERT INTO user (Username, Passwort) VALUES ('%e',MD5('%e'),'%s')")
[00:20:53] [DEBUG] CHandle::EscapeString(this=0x737238, src='Jamesos')
[00:20:53] [DEBUG] CConnection::EscapeString(src='Jamesos', this=0x7219d0, connection=0x761a60)
[00:20:53] [DEBUG] CHandle::EscapeString - return value: true, escaped string: 'Jamesos'
[00:20:53] [DEBUG] CHandle::EscapeString(this=0x737238, src='123123123')
[00:20:53] [DEBUG] CConnection::EscapeString(src='123123123', this=0x7219d0, connection=0x761a60)
[00:20:53] [DEBUG] CHandle::EscapeString - return value: true, escaped string: '123123123'
[00:20:53] [DEBUG] mysql_format: return value: '77'
[00:20:53] [DEBUG] mysql_pquery(1, "INSERT INTO user (Username, Passwort) VALUES ('Jamesos',MD5('123123123'),'')", "OnPlayerRegister", "i")
[00:20:53] [DEBUG] CCallback::Create(amx=0x5ace20, name='OnPlayerRegister', format='i', params=0x2f93b50, param_offset=5)
[00:20:53] [DEBUG] CCallback::Create - callback index for 'OnPlayerRegister': 30
[00:20:53] [DEBUG] processing specifier 'i' with parameter index 0
[00:20:53] [DEBUG] retrieved and pushed value '0'
[00:20:53] [INFO] Callback 'OnPlayerRegister' set up for delayed execution.
[00:20:53] [DEBUG] created delayed callback with 1 parameter
[00:20:53] [DEBUG] CHandle::Execute(this=0x737238, type=2, query=0x77e878)
[00:20:53] [DEBUG] CConnectionPool::Queue(query=0x77e878, this=0x721a90)
[00:20:53] [DEBUG] CHandle::Execute - return value: true
[00:20:53] [DEBUG] mysql_pquery: return value: '1'
[00:20:53] [DEBUG] mysql_format(1, 0x02F93768, 256, "INSERT user SET Geburtsdatum = '%s' WHERE Useername = '%s'")
[00:20:53] [DEBUG] mysql_format: return value: '62'
[00:20:53] [DEBUG] mysql_tquery(1, "INSERT user SET Geburtsdatum = '' WHERE Useername = 'Jamesos'", "", "")
[00:20:53] [DEBUG] CCallback::Create(amx=0x5ace20, name='', format='', params=0x2f93754, param_offset=5)
[00:20:53] [DEBUG] CConnection::Execute(query=0x77e878, this=0x40a0020, connection=0x775038)
[00:20:53] [DEBUG] CQuery::Execute(this=0x77e878, connection=0x775038)
[00:20:53] [DEBUG] CHandle::Execute(this=0x737238, type=1, query=0x42db538)
[00:20:53] [DEBUG] CHandle::Execute - return value: true
[00:20:53] [DEBUG] mysql_tquery: return value: '1'
[00:20:53] [DEBUG] CConnection::Execute(query=0x42db538, this=0x2fe0020, connection=0x763e38)
[00:20:53] [DEBUG] CQuery::Execute(this=0x42db538, connection=0x763e38)
[00:20:53] [ERROR] error #1064 while executing query "INSERT user SET Geburtsdatum = '' WHERE Useername = 'Jamesos'": You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE Useername = 'Jamesos'' at line 1
[00:20:53] [DEBUG] CConnection::GetError(this=0x2fe0020, connection=0x763e38)
[00:20:53] [DEBUG] CCallback::Create(amx=0x5ace20, name='OnQueryError', format='dsssd)
[00:20:53] [DEBUG] CCallback::Create - callback index for 'OnQueryError': -10046
[00:20:53] [DEBUG] processing specifier 'd'
[00:20:53] [DEBUG] retrieved and pushed value '1064'
[00:20:53] [DEBUG] processing specifier 's'
[00:20:53] [DEBUG] retrieved and pushed value 'You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE Useername = 'Jamesos'' at line 1'
[00:20:53] [DEBUG] processing specifier 's'
[00:20:53] [DEBUG] retrieved and pushed value ''
[00:20:53] [DEBUG] processing specifier 's'
[00:20:53] [DEBUG] retrieved and pushed value 'INSERT user SET Geburtsdatum = '' WHERE Useername = 'Jamesos''
[00:20:53] [DEBUG] processing specifier 'd'
[00:20:53] [DEBUG] retrieved and pushed value '1'
[00:20:53] [INFO] Callback 'OnQueryError' set up for delayed execution.
[00:20:53] [DEBUG] created delayed callback with 5 parameters
[00:20:53] [DEBUG] CCallback::Execute(amx=0x5ace20, index=-10046, num_params=5)
[00:20:53] [INFO] Executing callback 'Ïò' with 5 parameters...
[00:20:53] [DEBUG] processing internal specifier 'c'
[00:20:53] [DEBUG] pushed value '1' onto AMX stack
[00:20:53] [DEBUG] processing internal specifier 's'
[00:20:53] [DEBUG] pushed value 'INSERT user SET Geburtsdatum = '' WHERE Useername = 'Jamesos'' onto AMX stack
[00:20:53] [DEBUG] processing internal specifier 's'
[00:20:53] [DEBUG] pushed value '' onto AMX stack
[00:20:53] [DEBUG] processing internal specifier 's'
[00:20:53] [DEBUG] pushed value 'You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'WHERE Useername = 'Jamesos'' at line 1' onto AMX stack
[00:20:53] [DEBUG] processing internal specifier 'c'
[00:20:53] [DEBUG] pushed value '1064' onto AMX stack
[00:20:53] [DEBUG] executing AMX callback with index '-10046'
[00:20:53] [ERROR] error #1136 while executing query "INSERT INTO user (Username, Passwort) VALUES ('Jamesos',MD5('123123123'),'')": Column count doesn't match value count at row 1
[00:20:53] [DEBUG] CConnection::GetError(this=0x40a0020, connection=0x775038)
[00:20:53] [DEBUG] AMX callback executed with error '0'
[00:20:53] [INFO] Callback successfully executed.
[00:20:53] [DEBUG] CCallback::Create(amx=0x5ace20, name='OnQueryError', format='dsssd)
[00:20:53] [DEBUG] CCallback::Create - callback index for 'OnQueryError': -10046
[00:20:53] [DEBUG] processing specifier 'd'
[00:20:53] [DEBUG] retrieved and pushed value '1136'
[00:20:53] [DEBUG] processing specifier 's'
[00:20:53] [DEBUG] retrieved and pushed value 'Column count doesn't match value count at row 1'
[00:20:53] [DEBUG] processing specifier 's'
[00:20:53] [DEBUG] retrieved and pushed value 'OnPlayerRegister'
[00:20:53] [DEBUG] processing specifier 's'
[00:20:53] [DEBUG] retrieved and pushed value 'INSERT INTO user (Username, Passwort) VALUES ('Jamesos',MD5('123123123'),'')'
[00:20:53] [DEBUG] processing specifier 'd'
[00:20:53] [DEBUG] retrieved and pushed value '1'
[00:20:53] [INFO] Callback 'OnQueryError' set up for delayed execution.
[00:20:53] [DEBUG] created delayed callback with 5 parameters
[00:20:53] [DEBUG] CCallback::Execute(amx=0x5ace20, index=-10046, num_params=5)
[00:20:53] [INFO] Executing callback 'Ïò' with 5 parameters...
[00:20:53] [DEBUG] processing internal specifier 'c'
[00:20:53] [DEBUG] pushed value '1' onto AMX stack
[00:20:53] [DEBUG] processing internal specifier 's'
[00:20:53] [DEBUG] pushed value 'INSERT INTO user (Username, Passwort) VALUES ('Jamesos',MD5('123123123'),'')' onto AMX stack
[00:20:53] [DEBUG] processing internal specifier 's'
[00:20:53] [DEBUG] pushed value 'OnPlayerRegister' onto AMX stack
[00:20:53] [DEBUG] processing internal specifier 's'
[00:20:53] [DEBUG] pushed value 'Column count doesn't match value count at row 1' onto AMX stack
[00:20:53] [DEBUG] processing internal specifier 'c'
[00:20:53] [DEBUG] pushed value '1136' onto AMX stack
[00:20:53] [DEBUG] executing AMX callback with index '-10046'
[00:20:53] [DEBUG] AMX callback executed with error '0'
[00:20:53] [INFO] Callback successfully executed.
Alles anzeigen
Useername
1. Ich denke du wolltest Username schreiben
2. Scheinst du einen Fehler noch bei deinem INSERT Query zu haben. Da hast du 3 Values für 2 Spalten...das stimmt ja nicht ganz
new query[256],passworteingabe[128];
GetPVarString(playerid,"passwortvar",passworteingabe,128);
mysql_format(db, query, sizeof(query), "INSERT INTO user (Username, Passwort) VALUES ('%e',MD5('%e'),'%s')",Spielername(playerid),passworteingabe,pInfo[playerid][pGeburtsdatum]);
mysql_pquery(db,query,"OnPlayerRegister", "i",playerid);
new q[256];
mysql_format(db,q,sizeof(q),"INSERT user SET Geburtsdatum = '%s' WHERE Username = '%s'",pInfo[playerid][pGeburtsdatum],Spielername(playerid));
mysql_tquery(db,q);
Also ist das hier dumm? Kriege es nicht in einem rein, da passierte das selbe
Du musst das Geburtsdatum auch angeben:
mysql_format(db, query, sizeof(query), "INSERT INTO user (Username, Passwort, Geburtsdatum) VALUES ('%e',MD5('%e'),'%s')",Spielername(playerid),passworteingabe,pInfo[playerid][pGeburtsdatum]);
Das andere Query kannste dir schenken
In der Konsole wird immer noch @angezeigt als string
http://prntscr.com/l97tuj ist das so überhaupt richtig?
pInfo[playerid][pGeburtsdatum]=strval(inputtext); im playerenum pGeburtsdatum,
er zeigt mir das ja schon in der Konsole als @ also irgendwas stimmt nicht
irgendwas stimmt nicht
Hast du meinen Beitrag überhaupt gelesen?
Alles anzeigenNein, nicht strval nutzen.
Das ist ja keine Zahl, sondern ein String.
Dementsprechend ist
format(PlayerInfo[playerid][e_Birthday], 11, inputtext);
richtig.
...in diesem Sinne...war das als String deklariert mit der [11] vollkommen korrekt.
Upsi, übersehen.
Ahh Effekt, verstehe das jetzt erst, habe mich gefragt warum nicht strval aber jetzt weiß ich es
sorry, hab es übersehen. Irgendwie wurde aus einer kleinen Frage eine riesige Frage.
Habe alles gar nicht verstanden, jetzt versteh ich es.
In der Datenbank wird es als komische Zahl angezeigt ( 202 )
habe im letzten Beitrag ein Screen rein geschickt ob das so richtig ist.
ob das so richtig ist.
Nein, das ist so nicht richtig.
Da du es als STRING speichern musst (zum 3. mal jetzt) und nicht als int.
Hätte ich ja gemacht würde es string als Auswahl geben,
habe einfach text genommen weil es string nicht gibt.
Geht alles danke.♥
weil es string nicht gibt
Dann frage dies doch
In SQL wird das als varchar betitelt.
Jaa und ich habe dir doch gerade gesagt, wie du das machst hahaha
So ich konnte das Jetzt erst Testen.
Das ding ist er zeigt nicht es so an dass die Zahl nach dem Komma weg ist sprich er müsste es bei 0.127, 012 Anzeigen aber er zeigt 0.27
Machs doch einfach so:
format(string, sizeof(string), "%.02f", Tanki[playerid][t_tankp]/1000);
Das Funktioniert nicht.