MySQL mehrere Zeilen auslesen

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
  • Folgendes:


    Ich hab ein Befehl /keys der mir folgendes aus der Datenbank ausgeben sollte:
    1,2,3,4,5
    Er gibt aber immer nur 1 aus


    Befehl:

    ocmd:key(playerid,params[])
    {
    new query[128];
    format(query,sizeof(query),"SELECT * FROM keys WHERE id = '%i' ORDER BY userID",i);
    mysql_function_query(serverdbhandle,query,true,"CarInfo","ii",playerid,i);
    }\


    carInfo:

    forward CarInfo(playerid,cardbid);
    public CarInfo(playerid,cardbid)
    {
    new rows,fields;
    cache_get_data(rows,fields,serverdbhandle);
    format(string2,sizeof(string2),"Keys:\n%i\n%i",cache_get_field_content_int(20,"userID",serverdbhandle));
    SendClientMessage(playerid,0xFFFFFFFF,string2);


    Wer findet den Fehler?
    Ich bin zu blöd gerade dazu

  • Hast du denn wirklich "1,2,3,4,5" als Text/String in der Datenbank stehen ?
    Falls ja,dann kannst du es nicht mit "cache_get_field_content_int" auslesen. Wie der Funktionsname sagt,kannst du damit eine Zahl auslesen."1,2,3,4,5" wäre aber ein Text. Es gibt bestimmt ein entsprechende Funktion die Strings auslesen kann.


    Abgesehen davon sollte man keine Listen in einem Feld speichern, dass aber nur nebenbei.
    Normalisierung ( Datenbank ) 1. Normalform



    //Edit:
    format(string2,sizeof(string2),"Keys:\n%i\n%i",cache_get_field_content_int(20,"userID",serverdbhandle));
    Du hast zwei Platzhalter (%i) aber nur 1 extra Parameter. Dann noch die Schleife wie cocacola schrieb.

  • Ich bin zu doof welche Schleife?
    Ich kappier es gerade nicht

  • forward CarInfo(playerid,cardbid);
    public CarInfo(playerid,cardbid)
    {
    new rows,fields,key_int, string2[256];
    format(string2,sizeof(string2),"Keys:\n");
    cache_get_data(rows,fields,serverdbhandle);
    for(new i=0; i<rows; i++)
    {
    format(string2,sizeof(string2),"%s%i\n",string2,cache_get_field_content_int(i,"userID",serverdbhandle));
    }
    SendClientMessage(playerid,0xFFFFFFFF,string2);


    So.