Liste nach Rows richten | MySQL R5

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
  • Guten Tag,


    Mein Name lautet CIBERKILLER.
    Und zwar bräuchte ich mal einen Hinweis/Tipp wie man mit MySQL R5 eine Liste von Rows machen kann, anschließend Daten von diesem Row herausgeben kann.
    Aktuell ist meine Whitelist (Whitelist anschauhen für Projektleiter) so aufgebaut:


    case 0:
    {
    mysql_query("SELECT * FROM `Whitelist`");
    mysql_store_result();
    rows=mysql_num_rows();
    if(!rows){ShowPlayerDialog(playerid, DIALOG_WHITELIST_LISTED, DIALOG_STYLE_MSGBOX, "{0055FF}Weise Liste", "{FFFFFF}Aktuell sind keine Spieler auf der Weißen Liste!", "Schließen", "");}
    else if(rows>0)
    {
    new tmp_var[2][24], string[sizeof(rows)*60];
    for(new i;i<rows;i++)
    {
    if(i==INVALID_PLAYER_ID)continue;
    if(sStats[i][Eingeloggt]==0)continue;
    if(IsPlayerNPC(i))continue;
    if(sStats[i][sWhitelist]!=true)continue;
    format(tmp_var[0], 24, "%s", mysql_GetString("Whitelist", "Name", "IP", GetIP(i)));
    format(tmp_var[1], 24, "%s", mysql_GetString("Whitelist", "IP", "Name", GetName(i)));
    format(string, sizeof(string), "Name: %s | IP: %s\n%s", tmp_var[0], tmp_var[1], string);

    }
    ShowPlayerDialog(playerid, DIALOG_WHITELIST_LISTED, DIALOG_STYLE_LIST, "{0055FF}Weise Liste", string, "Schließen", "");
    }
    mysql_free_result();
    }


    Wenn ein Spieler Online ist, wird er angezeigt, es muss einen IP Eintrag machen.
    Wenn er Online ist und alle Informationen vorhanden sind, dann wird er einwandfrei angezeigt!
    Das ganze ist mit mysql_getint geregelt, dabei wollte ich auchmal fragen, wie ich das auslesen in der for schleife einfach machen kann!



    Whitelist:


    Er soll alle Rows + Infos anzeigen ;)



    Mit freundlichen Grüßen,


    CIBERKILLER

  • case 0:
    {
    mysql_query("SELECT * FROM `Whitelist`");
    mysql_store_result();
    rows=mysql_num_rows();
    if(!rows)
    {
    ShowPlayerDialog(playerid, DIALOG_WHITELIST_LISTED, DIALOG_STYLE_MSGBOX, "{0055FF}Weise Liste", "{FFFFFF}Aktuell sind keine Spieler auf der Weißen Liste!", "Schließen", "");
    }
    else if(rows>0)
    {
    new tmp_var[2][24], string[sizeof(rows)*60], row_data[256];
    while(mysql_fetch_row_format(row_data))
    {
    print(row_data);
    //Würde jetzt die gesamte Zeile printen, die musst du dann noch splitten, dann hast du die einzelnen Werte.
    //Nutze dazu: mysql_fetch_field_row
    }
    ShowPlayerDialog(playerid, DIALOG_WHITELIST_LISTED, DIALOG_STYLE_LIST, "{0055FF}Weise Liste", string, "Schließen", "");
    }
    mysql_free_result();
    }


    Kannst es ja zu Testzwecken erst mal so laufen lassen, ob es alle Zeilen printet.

  • Beitrag von Kasakow ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Jeffry


    Also so klappt es nicht!

    while(mysql_fetch_row_format(row_data)){mysql_fetch_field_row(tmp_var[0], "Name"), mysql_fetch_field_row(tmp_var[1], "IP");}
    format(string, sizeof(string), "Name: %s | IP: %s\n%s", tmp_var[0], tmp_var[1], string);


    Er zeigt nur einen an!


    Einmal editiert, zuletzt von Kasakow ()

  • Also, dann klappt das ja. Den Code hast du aber gut versteckt, setze ihn nächstes mal in die pwn-Tags.


    Ändere ihn zu:
    while(mysql_fetch_row_format(row_data))
    {
    mysql_fetch_field_row(tmp_var[0], "Name");
    mysql_fetch_field_row(tmp_var[1], "IP");
    format(string, sizeof(string), "%sName: %s | IP: %s\n",string, tmp_var[0], tmp_var[1]);
    }

  • Jeffry


    Er zeigt aber nicht alles an ;)



    print:

    Code
    [14:27:04] row_data: 4|Michael_Weiner|37.4.93....
    [14:27:04] name:  | ip: 
    [14:27:04] row_data: 5|fefef|121
    [14:27:04] name: Michael_Weiner | ip: 37.4.93....
    [14:27:04] row_data: 7|testrow|121212
    [14:27:04] name: fefef | ip: 121



    Quellcode:
    while(mysql_fetch_row_format(row_data))
    {
    printf("row_data: %s", row_data), printf("name: %s | ip: %s", tmp_var[0], tmp_var[1]);
    mysql_fetch_field_row(tmp_var[0], "Name");
    mysql_fetch_field_row(tmp_var[1], "IP");
    format(string, sizeof(string), "%sName: %s | IP: %s\n",string, tmp_var[0], tmp_var[1]);
    }