Problem mit dem laden der Gangzonen ..

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

  • enum GangZonesInfo
    {
    gzone_id,
    gzone_name[MAX_NAME],
    gZoneOwner[50],
    gZoneAttacker[50],
    SprayTag1HP,
    SprayTag2HP,
    SprayTag3HP,
    Float:SprayTag1PosX,
    Float:SprayTag1PosY,
    Float:SprayTag1PosZ,
    Float:SprayTag2PosX,
    Float:SprayTag2PosY,
    Float:SprayTag2PosZ,
    Float:SprayTag3PosX,
    Float:SprayTag3PosY,
    Float:SprayTag3PosZ,
    Float:gzone_minx,
    Float:gzone_miny,
    Float:gzone_minz,
    Float:gzone_maxx,
    Float:gzone_maxy,
    Float:gzone_maxz
    };
    new GangZone[GANG_ZONES][GangZonesInfo];

    stock GetGangZones() {
    new idx=0;
    mysql_query( "SELECT * FROM gangzones");
    mysql_store_result();
    while(mysql_retrieve_row())//lauf durch alle zeilen durch
    {
    new tmp[128];
    mysql_fetch_field_row(tmp, "id");
    GangZone[idx][gzone_id] = strval(tmp);
    mysql_fetch_field_row(tmp, "zonename");
    format(GangZone[idx][gzone_name],50,tmp);
    mysql_fetch_field_row(tmp, "ZoneOwner");
    format(GangZone[idx][gZoneOwner],50,tmp);
    mysql_fetch_field_row(tmp, "ZoneMinX");
    GangZone[idx][gzone_minx] = strval(tmp);
    idx++;
    printf("ID %i | Name %s | Owner %s | ZoneMinX %f",idx,GangZone[gzone_id][gzone_name],GangZone[gzone_id][gZoneOwner],GangZone[gzone_id][gzone_minx]);
    }
    mysql_free_result();
    printf("* Es wurden %i GangZones geladen. *", idx);
    return 1;
    }

    [18:54:14] ID 1 | Name Test1 | Owner gsf | ZoneMinX 0.000000
    [18:54:14] ID 2 | Name Test1 | Owner gsf | ZoneMinX 0.000000
    [18:54:14] ID 3 | Name Test1 | Owner gsf | ZoneMinX 0.000000



    Er lädt leider nur die 1. GangZone aus der Tabelle (also ID 2/3 haben genau das gleiche wie 1 obwohl in der DB was anderes steht)
    E: Benutzt wird das MySQL R5 Plugin.

  • Du printest den Text nach dem du idx um 1 erhöhst...
    Ansonsten sehe ich da keinen Fehler, würde aber trod. noch
    if(mysql_num_rows())
    vor die while schleife packen.


    Edit:


    GangZone[gzone_id][gzone_name]


    Woher hast du die "gzone_id" ?
    Wird doch nirgends gesetzt..


    Musst es dann schon so benutzen:


    GangZone[idx][gzone_name]


    MfG.


  • stock GetGangZones() {
    new idx=0;
    mysql_query( "SELECT * FROM gangzones");
    mysql_store_result();
    if(mysql_num_rows())
    {
    while(mysql_retrieve_row())//lauf durch alle zeilen durch
    {
    new tmp[128];
    mysql_fetch_field_row(tmp, "id");
    GangZone[idx][gzone_id] = strval(tmp);
    mysql_fetch_field_row(tmp, "zonename");
    format(GangZone[idx][gzone_name],50,tmp);
    mysql_fetch_field_row(tmp, "ZoneOwner");
    format(GangZone[idx][gZoneOwner],50,tmp);
    mysql_fetch_field_row(tmp, "ZoneMinX");
    GangZone[idx][gzone_minx] = strval(tmp);
    printf("ID %i | Name %s | Owner %s | ZoneMinX %f",idx,GangZone[gzone_id][gzone_name],GangZone[gzone_id][gZoneOwner],GangZone[gzone_id][gzone_minx]);
    idx++;
    }
    }
    mysql_free_result();
    printf("* Es wurden %i GangZones geladen. *", idx);
    return 1;
    }


    Das Problem tritt weiterhin auf. Die Sache ist das er immer nur die 1. Spalte lädt egal welche ID (Also wenn die Infos von 2 geladen werden sollen stehen da trotzdem die von 1)

  • printf("ID %i | Name %s | Owner %s | ZoneMinX %f",idx,GangZone[idx][gzone_name],GangZone[idx][gZoneOwner],GangZone[idx][gzone_minx]);


    Und poste mal bitte die MySQL logs.


    //Edit:


    GangZone[idx][gzone_minx] = floatstr(tmp);
    Benutze "floatstr" für die Floats.

    ktos-dev.de
    Webentwicklung & Gestaltung uvm.

    Einmal editiert, zuletzt von Nico65 ()