String via MySQL aus Datenbank in einen Dialog auslesen lassen

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 Leute,


    ich möchte einen längeren String aus meiner MySQL-DB in einen Dialog auslesen lassen.


    Der Inhalt der Zeile in MySQL sieht wie folgt aus:


    Code
    Das Projekt wurde erfolgreich gestartet.\n\nDamit man gucken kann ob auch alles läuft, machen wir mal\neinen Zeilenumbruch!


    Das Scripttechnische:


    if(clickedid == News[playerid])
    {
    new bannedstring[356],query[256];
    mysql_query("SELECT `Server` FROM `news`");
    mysql_query(query);
    mysql_store_result();
    new str = mysql_num_rows();
    format(bannedstring,sizeof(bannedstring),"{FFFFFF}%s",str);
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_MSGBOX,"Neuigkeiten von SERVERNAME",bannedstring,"O.K.","");
    return 1;
    }

    Meine Werke

  • if(clickedid == News[playerid])
    {
    new string[356];
    mysql_query("SELECT `Server` FROM `news`");
    mysql_store_result();
    mysql_retrieve_row();
    mysql_fetch_field_row(string,"Server");
    format(string,sizeof(string),"{FFFFFF}%s",str);
    for(new i=0; i<strlen(string); i++) if(string[i] == '~') string[i] = '\n';
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_MSGBOX,"Neuigkeiten von SERVERNAME",string,"O.K.","");
    return 1;
    }


    In der Datenbank:

    Zitat

    Das Projekt wurde erfolgreich gestartet.~~Damit man gucken kann ob auch alles läuft, machen wir mal~einen Zeilenumbruch!

  • if(clickedid == News[playerid]) { new string[356]; mysql_query("SELECT `Server` FROM `news`"); mysql_store_result(); mysql_retrieve_row(); mysql_fetch_field_row(string,"Server"); format(string,sizeof(string),"{FFFFFF}%s",str); for(new i=0; i == '~') string = '\n'; ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_MSGBOX,"Neuigkeiten von SERVERNAME",string,"O.K.",""); return 1; }

    Ich glaube du benutzt ein "neueres" MySQL Plugin...
    Meins ist das noch alte (glaube R5), daher folgende Fehler:


    C:\Users\Roland\Desktop\Rfl\gamemodes\cs.pwn(5003) : error 017: undefined symbol "mysql_retrieve_row"
    C:\Users\Roland\Desktop\Rfl\gamemodes\cs.pwn(5004) : error 017: undefined symbol "mysql_fetch_field_row"
    C:\Users\Roland\Desktop\Rfl\gamemodes\cs.pwn(5005) : error 017: undefined symbol "str"

    Meine Werke

  • Wichtig ist im Prinzip nur diese Zeile für deinen Code:
    for(new i=0; i<strlen(string); i++) if(string[i] == '~') string[i] = '\n';
    Die Funktion replaziert die ~ in der Datenbank mit einem \n, das muss gemacht werden da es mit MySQL irgendwie nicht möglich ist, direkt einen Zeilenumbruch zu benutzen.
    Sollte also nicht all zu schwer sein, das auf deine aktuellen Version umzuschreiben.

  • Wichtig ist im Prinzip nur diese Zeile für deinen Code:

    Ja klar, jedoch ändert dies nichts an den Fehlern :/ :


    C:\Users\Roland\Desktop\Rfl\gamemodes\cs.pwn(5003) : error 017: undefined symbol "mysql_retrieve_row"
    C:\Users\Roland\Desktop\Rfl\gamemodes\cs.pwn(5004) : error 017: undefined symbol "mysql_fetch_field_row"
    C:\Users\Roland\Desktop\Rfl\gamemodes\cs.pwn(5005) : error 017: undefined symbol "str"

    Meine Werke

  • Schau im Server Log nach

    Oha oha...
    Hab mich wohl doch geirrt: :rolleyes:


    Code
    [23:48:45]  Loading plugin: mysql
    [23:48:45]  SA:MP MySQL Plugin v2.1.1 Loaded.
    [23:48:45]   Loaded.


    Also mit dem R5 sollte es klappen?



    #edit:


    Habe das ganze mal mit dem R5 probiert, jedoch kam dann folgendes:
    C:\Users\Roland\Desktop\Rfl\gamemodes\cs.pwn(881) : warning 213: tag mismatch
    C:\Users\Roland\Desktop\Rfl\gamemodes\cs.pwn(966) : error 017: undefined symbol "mysql_init"
    C:\Users\Roland\Desktop\Rfl\gamemodes\cs.pwn(966) : warning 213: tag mismatch
    C:\Users\Roland\Desktop\Rfl\gamemodes\cs.pwn(967) : warning 202: number of arguments does not match definition
    C:\Users\Roland\Desktop\Rfl\gamemodes\cs.pwn(967) : warning 202: number of arguments does not match definition
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    Zeilenblock (Fehler 881 :(
    stock mysql_GetInt(Table[], Field[], Where[], Is[])
    {
    new sqlint;
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s' LIMIT 1", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    sqlint = mysql_fetch_int(connection);
    mysql_free_result();
    return sqlint;
    }


    Zeilen Zeile 966-967:
    connection = mysql_init(LOG_ONLY_ERRORS, 1);
    mysql_connect(SQL_HOST, SQL_USER, SQL_PASS, SQL_DATA,connection,1);

    Meine Werke

    Einmal editiert, zuletzt von Dom_i ()