Mysql lässt bei 2tem spieler zeile leer

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
  • so jetzt mal neu :stock Sms2(playerid)
    {
    MAX_NACHRICHTEN[playerid]=0;
    new Nama[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Nama,sizeof(Nama));
    new mysql[60];
    format(mysql, sizeof (mysql), "SELECT * FROM sms WHERE Empfänger = '%s' ORDER BY ÌD DESC",Nama);
    mysql_query(mysql);
    mysql_store_result();
    if(mysql_num_rows() > 0)
    {
    new string[256];
    new Data[MAX_PLAYERS][128];
    while(mysql_fetch_row_format(Data[playerid]))
    {
    MAX_NACHRICHTEN[playerid]++;
    new id2 = MAX_NACHRICHTEN[playerid];
    mysql_fetch_field("ID",Data[playerid]);
    NachrichtenArray[playerid][id2][idm] = strval(Data[playerid]);
    mysql_fetch_field("Sender",Data[playerid],);
    id2 = MAX_NACHRICHTEN[playerid];
    format(NachrichtenArray[playerid][id2][absenderm],24,Data[playerid]);
    format(string, sizeof(string), "%s\nVon:%s",string,NachrichtenArray[playerid][MAX_NACHRICHTEN[playerid]][inhaltm]);
    }
    mysql_free_result();
    SendClientMessage(playerid,Rot,string);
    ShowPlayerDialog(playerid,DIALOG_SMS,DIALOG_STYLE_LIST,"SMS Postfach",string,"Beenden"," ");
    }
    else
    {
    SendClientMessage(playerid,Rot,"Du hast keine Nachrichten.");
    }
    return 1;
    }


    nur ich habe diese eroors: C:\Users\Jan\Desktop\op\gamemodes\neu.pwn(3398) : error 035: argument type mismatch (argument 1)
    C:\Users\Jan\Desktop\op\gamemodes\neu.pwn(3400) : error 035: argument type mismatch (argument 1)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.


    hier die zeilen : mysql_fetch_field("ID",Data[playerid]);
    mysql_fetch_field("Sender",Data[playerid]);





    MFG janpplayer



    /edit noch etwas hinzugefügt
    /edit überschrift geändert
    /edit nochmal neuauflage :D
    /edit neue überschrift details siehe unten

    4 Mal editiert, zuletzt von janpplayer ()

  • [pwn]stock Sms2(playerid)
    {
    MAX_NACHRICHTEN[playerid]=0;
    new Nama[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Nama,sizeof(Nama));
    new mysql[60];
    format(mysql, sizeof (mysql), "SELECT * FROM sms WHERE Empfänger = '%s' ORDER BY ÌD DESC",Nama);
    mysql_query(mysql);
    mysql_store_result();
    if(mysql_num_rows() > 0)
    {
    new string[256];
    new Data[128];
    while(mysql_fetch_row_format(Data[playerid]))
    {
    MAX_NACHRICHTEN[playerid]++;
    new id2 = MAX_NACHRICHTEN[playerid];
    mysql_fetch_field("ID",Data[playerid]);
    NachrichtenArray[playerid][id2][idm] = strval(Data[playerid]);
    mysql_fetch_field("Sender",Data[playerid],);
    id2 = MAX_NACHRICHTEN[playerid];
    format(NachrichtenArray[playerid][id2][absenderm],24,Data[playerid]);
    format(string, sizeof(string), "%s\nVon:%s",string,NachrichtenArray[playerid][MAX_NACHRICHTEN[playerid]][inhaltm]);
    }
    mysql_free_result();
    SendClientMessage(playerid,Rot,string);
    ShowPlayerDialog(playerid,DIALOG_SMS,DIALOG_STYLE_LIST,"SMS Postfach",string,"Beenden"," ");
    }
    else
    {
    SendClientMessage(playerid,Rot,"Du hast keine Nachrichten.");
    }
    return 1;
    }[/pwn]


    versuch das ma ^^ wenn du daten fetchst brauchste MAX_PLAYERS net^^

  • ne also dara lag es nicht ich habe mal aus meinem mysql include mal die natives gehohlt vll kannst du damit was anfangen es geht leider trotzdem nit selber fehler


    Zeile (3380) : Falsche Anzahl an Parametern
    Zeile (3382) : Falsche Anzahl an Parametern
    Zeile (3384) : Falsche Anzahl an Parametern


    fehler zeilen


    mysql_fetch_field("ID",Data);
    mysql_fetch_field("Sender",Data);
    mysql_fetch_field("Sender",Data);


    so hier die natives: native mysql_fetch_int(connectionHandle = 1);
    native mysql_fetch_field(number,dest[],connectionHandle = 1);
    native mysql_fetch_field_row(string[],const fieldname[],connectionHandle = 1);
    native mysql_fetch_float(&Float:result,connectionHandle = 1);



    MFG janpplayer

  • so habs jetzt sooo: stock Sms(playerid)
    {
    MAX_NACHRICHTEN[playerid]=0;
    new mysql[60];
    new Nama[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Nama,sizeof(Nama));
    format(mysql, sizeof (mysql), "SELECT * FROM sms WHERE Empfänger = '%s'",Nama);//ORDER BY ÌD DESC
    mysql_query(mysql);
    mysql_store_result();
    new Get[128];
    new string[640];
    while(mysql_fetch_row(Get))
    {
    MAX_NACHRICHTEN[playerid]++;
    new id2 = MAX_NACHRICHTEN[playerid];
    new str[64];
    new sms[6][128];
    split(Get,sms,'|');
    MAX_NACHRICHTEN[playerid]++;
    new FirstInt = strval(sms[1]);
    NachrichtenIdDb[playerid][id2]=FirstInt;
    SendClientMessage(playerid,Rot,sms[1]);
    format(NachrichtenSender[playerid][id2],24,"%s",sms[2]);
    SendClientMessage(playerid,Rot,sms[2]);
    SendClientMessage(playerid,Rot,sms[3]);
    format(str,sizeof(str),"Neue SMS Absender:%s.\n",Get);
    format(string,sizeof(string),"%s%s\r\n",string,Get);
    SendClientMessage(playerid,Gelb,Get);
    new test[10];
    format(test,10,"%d",NachrichtenIdDb[playerid][id2]);
    SendClientMessage(playerid,Gelb,test);
    }
    ShowPlayerDialog(playerid,DIALOG_SMS,DIALOG_STYLE_LIST,"Sms",string,"Antworten","Schließen");
    return 1;
    }


    dann bei den dialogen so: if(dialogid == DIALOG_SMS)
    {
    if(response)
    {
    new id = listitem;
    id++;
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new Absender[MAX_PLAYER_NAME];
    format(Absender,sizeof(Absender),"%s",mysql_GetString3("sms","Sender","Id",NachrichtenIdDb[playerid][id],"Empfänger",sendername));
    format(NachrichtenSender[playerid][id],24,"%s",Absender);
    new Inhalt[128];
    new str[32];
    format(str,sizeof(str),"Sms von %s.",Absender);
    format(Inhalt,sizeof(Inhalt),"%s hat geschrieben: %s",Absender,mysql_GetString3("sms","Inhalt","Id",NachrichtenIdDb[playerid][id],"Empfänger",sendername));
    ShowPlayerDialog(playerid,DIALOG_SMSANTWORTEN,DIALOG_STYLE_INPUT,str,Inhalt,"Absenden","Abbrechen");
    SendClientMessage(playerid,Lila,Absender);
    SendClientMessage(playerid,Lila,str);
    SendClientMessage(playerid,Lila,Inhalt);
    SendClientMessage(playerid,Lila,mysql_GetString3("sms","Sender","Id",id,"Empfänger",sendername));
    AktuelleNachricht[playerid] = NachrichtenIdDb[playerid][id];
    }


    }
    if(dialogid == DIALOG_SMSANTWORTEN)
    {
    if(response)
    {
    new Query[264];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new id = AktuelleNachricht[playerid];
    SendClientMessage(playerid,Grün,NachrichtenSender[playerid][id]);
    format(Query, sizeof(Query), "INSERT INTO sms (Id,Sender, Empfänger, inhalt) VALUES (NULL,'%s', '%s', '%s');",sendername,NachrichtenSender[playerid][id],inputtext);
    mysql_query(Query);
    mysql_insert_id();
    }
    }


    und dann oben hab ichs so: new NachrichtenIdDb[MAX_PLAYERS][50];
    new NachrichtenInhalt[MAX_PLAYERS][50][264];
    new NachrichtenSender[MAX_PLAYERS][50][64];
    new AktuelleNachricht[MAX_PLAYERS];


    nur leider können zwar mehrere spieler lesen aber nur einer schreiben also ich gehe in die db schreibe mir eine sms selber von dem 2ten nutzer und dann gehe ich ingame und teste es von spieler 1 zu spieler 2 dann und es geht er kann sie auch lesen aber wenn er antwortet bleibt die zeile empfänger also an wen es gehen soll leer nur wieso?


    hoffe mir kann jemand helfen bin echt am verzweifeln


    MFG janpplayer


    // edit neu und neuer fehler -.-
    // edit string verändert

    2 Mal editiert, zuletzt von janpplayer ()

  • @janplayer
    Hast du die Zelle Id als Primärkey in deiner Tabelle eingestellt?
    Wenn ja brauchst du Id in deinem query nicht zu über geben ;)


    Wenn nicht musst du das auch in den query als Value mit eintragen


    if(dialogid == DIALOG_SMSANTWORTEN)
    {
    if(response)
    {
    new Query[264];
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new id = AktuelleNachricht[playerid];
    SendClientMessage(playerid,Grün,NachrichtenSender[playerid][id]);
    format(Query, sizeof(Query), "INSERT INTO sms (`Sender`, `Empfänger`, `inhalt`) VALUES ('%s', '%s', '%s');",sendername,NachrichtenSender[playerid][id],inputtext);
    mysql_query(Query);
    mysql_insert_id();
    }
    }

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • hat leider nichts gebracht denn er tut anscheinend nicht den empfänger sender von der sms abspeichern und dann beim DIALOG_SMSANTWORTEN wird nähmlich auch nichts per SENDCLIENTMESSAGE angezeigt aber ich kriege das problem in keiner weise gelöst der 1ste spieler bei ihm geht alles perfekt


    also das problem liegt 100% daran das er die id vom dialog_sms nicht zum dialog_smsantworten übergeben kann nur wieso habe schon variablen erstellt und es geht trotzdem nicht was mach ich falsch?



    // edit fehler beigeschrieben

    Einmal editiert, zuletzt von janpplayer ()

  • Du wolltest ja mal meine Hilfe haben ^^


    Wäre nett wenn du bei Pastebin.com mal eine Übersicht aller Dinge machst.
    Das ich direkt alles sehe was du gerade aktuell hast.


    Oder dass wir das per TeamViewer machen.

    Miete mich (nicht) :love: