Ouh ja habs jetzt auch gesehen
Habe zuerst nur auf den dritten Fehler geachtet D:
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Gibt es dafür auch eine Variante für INT(eger) ?
mysql_real_escape_string(carid,carid);
- Tomsen
-
Beschreibe den Vorfall bitte genauer .
Mit einem Codeschnipsel kann keiner was anfangen -
Ich will die CarID in der Datenbank setten. Da carid aber ja schon sagt das es ne zahl ist, geht
mysql_real_escape_string(carid,carid);nicht. Was muss ich für Integer nehmen?
mysql_real_escape_integer(carid,carid);
gibts nicht bzw. geht nicht.
- Tomsen
-
Soweit ich weis kannst du einen Integer verwenden ....
Probiers mal einfach aus und sage Bescheid ob es funkt . -
Hab schon probiert. Weder int noch integer geht.
- Tomsen
-
Ich will die CarID in der Datenbank setten. Da carid aber ja schon sagt das es ne zahl ist, geht
mysql_real_escape_string(carid,carid);nicht. Was muss ich für Integer nehmen?
mysql_real_escape_integer(carid,carid);
gibts nicht bzw. geht nicht.
- Tomsen
mysql_query("SELECT ID FROM Vehicles WHERE Besitzer='Tomsen'");
mysql_store_result();
new row[32], id;
mysql_fetch_row(row);
id = strval(row);mysql_free_result();
Probier das mal
-
Ich zeig mal den public dann versteht ihr villt. mehr was ich meine. Es wird eine komplett neue Zeile erstellt.
stock CreateCar(playerid)
{
new query[256],Name[MAX_PLAYER_NAME];
new carid = GetPVarInt(playerid,"CarID");
GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
mysql_real_escape_string(Name,Name);
mysql_real_escape_integer(carid,carid);
format(query, sizeof(query), "INSERT INTO `autos` (`Besitzer`, `CarID`) VALUES ('%s', '%d')", Name, carid);
mysql_query(query);
return 1;
}- Tomsen
-
Zitat
mysql_real_escape_string(Name,Name);
mysql_real_escape_integer(carid,carid);
Das ist unnötig -
"!" bedeutet "not", also "nicht".
Dies bezeichnet in einer if-Abfrage, ob etwas nicht stattgefunden hat.
Das kommt aber immer auf den Sachverhalt an!Mit freundlichen Grüßen
Saitek | Timo
Du redest hier eindeutig quatsch.
! bedeutet zwar als Vergleichsoperator ungleich,
aber hier hat das eine vollkommende andere Bedeutung (in der If-Abfrage).
Das ! vor der Abfrage sagt hier aus, dass der return Wert 0 sein soll, weil strcmp eben 0 returnt, wenn die Strings stimmen.
Wenn du jetzt jedoch das ! bei strcmp weglässt, ist die Bedingung, dass der Return Wert 1 ist, aber was bei strcmp ja das Ergebnis verfälschen würde.LG
-
Geht nur für Strings da es nur dazu gebraucht wird um SQL Injections zu verhindern.. (http://de.wikipedia.org/wiki/SQL-Injection)
-
mysql_real_escape_integer(carid,carid);
Sowas gibts nicht ! -
mysql_real_escape_integer(carid,carid);
Sowas gibts nicht !
Warum sollte es auch so etwas geben ?
Die o.g. Funktion benutzt man um SQL Injections zu verhindern, und eine Zahlwert kann wohl schlecht ein String sein :OEdit: Dann schreib das per Aussagesatz und nicht per oO, kann man leicht falsch verstehen
LG
-
Deswegen meine Reaktion
-
if(PlayerInfo[playerid][pJob] == 1) {
SendClientMessage(playerid,COLOR_LIGHTRED,"*** Job *** Befehle_ID1"); }
else if(PlayerInfo[playerid][pJob] == 0) {
SendClientMessage(playerid, COLOR_LIGHTRED,"*** Arbeitslos ***"); }
else if(PlayerInfo[playerid][pJob] == 2) {
SendClientMessage(playerid,COLOR_LIGHTRED,"*** Job *** Befehle_ID2"); }
else if(PlayerInfo[playerid][pJob] == 3) {
SendClientMessage(playerid,COLOR_LIGHTRED,"*** Job *** Befehle_ID3"); }
else if(PlayerInfo[playerid][pJob] == 4) {
SendClientMessage(playerid,COLOR_LIGHTRED,"*** Job *** Befehle_ID4"); }
else if(PlayerInfo[playerid][pJob] == 5) {
SendClientMessage(playerid,COLOR_LIGHTRED,"*** Job *** Befehle_ID5"); }
else if(PlayerInfo[playerid][pJob] == 7) {
SendClientMessage(playerid,COLOR_LIGHTRED,"*** Job *** Befehle_ID7"); }
else if(PlayerInfo[playerid][pJob] == 8) {
SendClientMessage(playerid,COLOR_LIGHTRED,"*** Job *** Befehle_ID8"); }
else if(PlayerInfo[playerid][pJob] == 9) {
SendClientMessage(playerid,COLOR_LIGHTRED,"*** Job *** Befehle_ID9"); }
else if(PlayerInfo[playerid][pJob] == 10) {
SendClientMessage(playerid,COLOR_LIGHTRED,"*** Job *** Befehle_ID10"); }
else if(PlayerInfo[playerid][pJob] == 12) {
SendClientMessage(playerid,COLOR_LIGHTRED,"*** Job *** Befehle_ID12"); }
else if(PlayerInfo[playerid][pJob] == 14) {
SendClientMessage(playerid,COLOR_LIGHTRED,"*** Job *** Befehle_ID14"); }
else if(PlayerInfo[playerid][pJob] == 16) {
SendClientMessage(playerid,COLOR_LIGHTRED,"*** Job *** Befehle_ID16"); }
else if(PlayerInfo[playerid][pJob] == 17) {
SendClientMessage(playerid,COLOR_LIGHTRED,"*** Job *** Befehle_ID17"); }
else if(PlayerInfo[playerid][pJob] == 20) {
SendClientMessage(playerid,COLOR_LIGHTRED,"*** Job *** Befehle_ID20"); }1. Frage: Wie kann ich das kürzer fassen?
2. Frage: Wie packe ich das nun in einen Befehle-Dialog? - Ohne immer einen neuen Dialog zu definieren. (Habe bereits alle anderen Befehle drin, nur die mit den Jobs fehlen noch^^) -
-
Random: So hier evtl.?
if(PlayerInfo[playerid][pJob] == 0)
{
SendClientMessage(playerid, COLOR_LIGHTRED,"*** Arbeitslos ***");
}
else
{
new string[64];
format(string, sizeof(string), "*** Job *** Befehle_ID%d", PlayerInfo[playerid][pJob]);
SendClientMessage(playerid, COLOR_LIGHTRED, string);
}Das "Befehle_ID1" habe ich nur durch die Befehle ersetzt, da ich hier keinen unendslangen Code einfügen wollte.
-
ganz einfach als array
new JobStrings[][] = {
{"*** Arbeitslos ***"},
{"*** Job *** Befehle_ID1"},
{"*** Job *** Befehle_ID2"},
{"*** Job *** Befehle_ID3"},
{"*** Job *** Befehle_ID4"},
{"*** Job *** Befehle_ID5"},
{"*** Job *** Befehle_ID6"}
};SendClientMessage(playerid, COLOR_LIGHTRED,JobStrings[PlayerInfo[playerid][pJob]]);
-
ganz einfach als array
new JobStrings[][] = {
{"*** Arbeitslos ***"},
{"*** Job *** Befehle_ID1"},
{"*** Job *** Befehle_ID2"},
{"*** Job *** Befehle_ID3"},
{"*** Job *** Befehle_ID4"},
{"*** Job *** Befehle_ID5"},
{"*** Job *** Befehle_ID6"}
};SendClientMessage(playerid, COLOR_LIGHTRED,JobStrings[PlayerInfo[playerid][pJob]]);
Statt SendClientMessage kann ich es im Dialog bspw. so machen?:
ShowPlayerDialog(playerid, DIALOGID, DIALOG_STYLE_LIST, "Jobs", JobStrings[PlayerInfo[playerid][pJob]], "OK", "");Und..
new JobStrings[][]Was kommt nun in die jeweiligen Klammern? Leer lassen?
-
Statt SendClientMessage kann ich es im Dialog bspw. so machen?:
ShowPlayerDialog(playerid, DIALOGID, DIALOG_STYLE_LIST, "Jobs", JobStrings[PlayerInfo[playerid][pJob]], "OK", "");Und..
new JobStrings[][]Was kommt nun in die jeweiligen Klammern? Leer lassen?
Statt SendClientMessage kann ich es im Dialog bspw. so machen?:
ShowPlayerDialog(playerid, DIALOGID, DIALOG_STYLE_LIST, "Jobs", JobStrings[PlayerInfo[playerid][pJob]], "OK", "");Und..
new JobStrings[][]Was kommt nun in die jeweiligen Klammern? Leer lassen?
Die kannst du ausfüllen oder leer lassen.
Wenn du diese leer lässt wird das ganze automatisch angepasst kannst auch selbst testen in dem du das ganze mit definierung compilst und einmal ohne.//edit
zu deiner ersten Frage ja
da
JobStrings[PlayerInfo[playerid][pJob]] ein string ausgibtwenn PlayerInfo[playerid][pJob] den wert 2 hätte so würde dies in der msgbox stehen
*** Job *** Befehle_ID2