MySQL Dialog

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
  • Hey hab schon oft probiert Information aus einer MySQL Datenbank in einen Dialog zu bringen. Hab es nie hinbekommen. Ich hab es mir irgendwie so vorgestellt:
    new string[256];
    format(string,sizeof(string),"SELECT `aname` FROM `airlines` ");
    mysql_query(string);
    //und hier halt noch ShowPlayerDialog aber das kann saich jeder ja denken.

    Es soll halt so aussehen: Ich habe eine Datenbank und dort eine Tabelle namens Airlines, von dort soll er sich aus jeder Zeile den Airlinenamen herausnehmen und ihn in einen Dialog einfügen. 1 Zeile = 1 Airlinename.

  • füg mal des ein sollte funktionieren

    new string[256],rows,dialog[512],name[52];
    format(string,sizeof(string),"SELECT * FROM `airlines` ");
    mysql_query(string);
    mysql_store_result();
    rows = mysql_num_rows();
    if(rows)
    {
    for(new x=0;x<rows,x++)
    {
    mysql_retrieve_row();
    mysql_fetch_field_row(name,"aName");
    strcat(dialog,%s\n,name);
    }
    return ShowPlayerDialog(playerid,DIALOG_NAME,DIALOG_STYLE_LIST,"Überschrift",dialog,"Button1","Button2");
    }
    return SendClientMessage(playerid,Grau,"Es gibt keine Airlines");



  • Gibt leider relativ viele Errors aus:
    CMD:airlines(playerid, params[])
    {
    new string[256],rows,dialog[512],name[52];
    format(string,sizeof(string),"SELECT * FROM `airlines` ");
    mysql_query(string);//1470
    mysql_store_result();
    rows = mysql_num_rows();
    if(rows)
    {
    for(new x=0;x<rows,x++)//1475
    {
    mysql_retrieve_row();
    mysql_fetch_field_row(name,"aName");
    strcat(dialog,%s\n,name);//1479
    }
    return ShowPlayerDialog(playerid,50,DIALOG_STYLE_LIST,"Überschrift",dialog,"Button1","Button2");
    }
    return SendClientMessage(playerid,Grau,"Es gibt keine Airlines");
    }



    BeThePilot.pwn(1470) : error 035: argument type mismatch (argument 1)
    BeThePilot.pwn(1475) : error 001: expected token: ";", but found ")"
    BeThePilot.pwn(1479) : error 029: invalid expression, assumed zero
    BeThePilot.pwn(1479) : error 017: undefined symbol "s"
    BeThePilot.pwn(1479) : error 029: invalid expression, assumed zero
    BeThePilot.pwn(1479) : fatal error 107: too many error messages on one line

  • CMD:airlines(playerid, params[])
    {
    new string[256],rows,dialog[512],name[52];
    format(string,sizeof(string),"SELECT * FROM `airlines` ");
    mysql_query(string);//1470
    mysql_store_result();
    rows = mysql_num_rows();
    if(rows)
    {
    for(new x=0;x<rows;x++)//1475 , -> ;
    {
    mysql_retrieve_row();
    mysql_fetch_field_row(name,"aName");
    strcat(dialog,"%s\n",name);//1479 %s\n -> "%s\n"
    }
    return ShowPlayerDialog(playerid,50,DIALOG_STYLE_LIST,"Überschrift",dialog,"Button1","Button2");
    }
    return SendClientMessage(playerid,Grau,"Es gibt keine Airlines");
    }


    Probier es mal so, welches mysql Plugin verwendest du ?


  • CMD:airlines(playerid, params[])
    {
    new string[256],rows,dialog[512],name[52];
    format(string,sizeof(string),"SELECT * FROM `airlines` ");
    mysql_query(string);//1470
    mysql_store_result();
    rows = mysql_num_rows();
    if(rows)
    {
    for(new x=0;x<rows;x++);
    {
    mysql_retrieve_row();
    mysql_fetch_field_row(name,"aName");
    strcat(dialog,"%s\n",name);//1479 %s\n -> "%s\n"
    }
    return ShowPlayerDialog(playerid,50,DIALOG_STYLE_LIST,"Überschrift",dialog,"Button1","Button2");
    }
    return SendClientMessage(playerid,0xFFFFFFFF,"Es gibt keine Airlines");
    }


    Gibt immernoch Errors aus :
    BeThePilot.pwn(1470) : error 035: argument type mismatch (argument 1)
    BeThePilot.pwn(1475) : error 036: empty statement
    BeThePilot.pwn(1479) : error 035: argument type mismatch (argument 3)
    Benutze das Plugin : https://code.google.com/p/sa-mp-mysql-plugin/


  • mysql_retrieve_row();
    mysql_fetch_field_row(name,"aName");
    format(dialog,sizeof(dialog),"%s\n%s",dialog,name);




    So dürfte das einwenig einfacher als mit strcat gehen.
    Da ganze einfach in die for-schleife einsetzen.


    Edit:


    Da du die r34 benutz musst du aus mysql_query ein mysql_tquery machen wie es in der Include steht.


    mit freundlichem Gruß
    Timo Schneider

    Einmal editiert, zuletzt von huGGy () aus folgendem Grund: Text

  • Erstmal danke nur habe ich leider mysql_tquery trotzdem noch den Fehler den ich schon seit Tagen bei anderen Systemen habe.
    error 035: argument type mismatch (argument 1)

  • 2 Zeilen über und unter dem Fehler bitte und diesen BITTE AUCH MARKIEREN.
    Sonst können wir die Zeilen eraten,


    mit freundlichem Gruß
    Timo Schneider

    Einmal editiert, zuletzt von huGGy () aus folgendem Grund: rechtschreibung

  • 2 Zeilen über und uneter dem Fehler bitte und diesen BITTE AUCH MARKIEREN.
    Sonst können wir die Zeilen eraten,


    mit freundlichem Gruß
    Timo Schneider


    Zwei Zeilen darüber :
    new string[256],rows,dialog[512],name[52];
    format(string,sizeof(string),"SELECT * FROM `airlines` ");
    Zwei Zeilen darunter:
    mysql_store_result();
    rows = mysql_num_rows();


  • new handle = mysql_connect(const host[], const user[], const database[], const password[], port = 3306, bool:autoreconnect = true);


    mysql_format(handle, query, sizeof(query), "SELECT * FROM `airlines`");
    mysql_tquery(handle, query, "Public", "i", playerid);


    In der r34 sollte das ganze in etwa so aufgebaut sein.


    mit freundlichem Gruß
    Timo Schneider

    Einmal editiert, zuletzt von huGGy () aus folgendem Grund: Text