Es wird immer nur das letzte Auto ausgegeben

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

  • if(strcmp("/carinfo", cmdtext, true, 10) == 0)
    {
    new carid = GetPlayerVehicleID(playerid);
    new String[256],string1[128],string2[128],string3[128],string4[128];
    format(string1,sizeof(string1),"Besitzer: %i\n",cInfo[carid][besitzer]);
    format(string2,sizeof(string2),"Firma: %i\n",cInfo[carid][firma]);
    format(string3,sizeof(string3),"Model: %i\n",cInfo[carid][model]);
    format(string4,sizeof(string4),"Kennzeichen: %i\n",cInfo[carid][kennzeichen]);
    format(String, sizeof(String),"%s%s%s%s",string1,string2,string3,string4);
    ShowPlayerDialog(playerid,500, DIALOG_STYLE_LIST, "CarInfo", String, "Weiter","");
    return 1;
    }


    Es wird immer nur der letzte Datenbankeintrag ausgegeben. Was mach ich falsch?

  • Es wird immer nur der letzte Datenbankeintrag ausgegeben


    Das glaub ich dir kein Stück.


    Du gibst nämlich nur alles von dem Auto aus, in dem der Spieler sitzt.


    Eine Verbindung zu Datenbank sehe ich da gar nicht.

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski


  • mysql_function_query(dbhandle,"SELECT * FROM autos_sapd",true,"sapdCar","");


    if(strcmp("/carinfo", cmdtext, true, 10) == 0)
    {
    new carid = GetPlayerVehicleID(playerid);
    new String[256],string1[128],string2[128],string3[128],string4[128];
    format(string1,sizeof(string1),"Besitzer: %i\n",cInfo[carid][besitzer]);
    format(string2,sizeof(string2),"Firma: %i\n",cInfo[carid][firma]);
    format(string3,sizeof(string3),"Model: %i\n",cInfo[carid][model]);
    format(string4,sizeof(string4),"Kennzeichen: %i\n",cInfo[carid][kennzeichen]);
    format(String, sizeof(String),"%s%s%s%s",string1,string2,string3,string4);
    ShowPlayerDialog(playerid,500, DIALOG_STYLE_LIST, "CarInfo", String, "Weiter","");
    return 1;
    }


    public sapdCar(playerid)
    {
    new Car,rows,fields;
    cache_get_data(rows,fields);
    if(rows)
    {
    for(new i=0; i<rows; i++)
    {
    cInfo[i][db_id] = cache_get_field_content_int(i,"db_id",dbhandle);
    cInfo[i][model] = cache_get_field_content_int(i,"model",dbhandle);
    cInfo[i][besitzer] = cache_get_field_content_int(i,"besitzer",dbhandle);
    cInfo[i][firma] = cache_get_field_content_int(i,"firma",dbhandle);
    cInfo[i][c_x] = cache_get_field_content_int(i,"x",dbhandle);
    cInfo[i][c_y] = cache_get_field_content_int(i,"y",dbhandle);
    cInfo[i][c_z] = cache_get_field_content_int(i,"z",dbhandle);
    cInfo[i][c_r] = cache_get_field_content_int(i,"r",dbhandle);
    cInfo[i][Color_1] = cache_get_field_content_int(i,"Color_1",dbhandle);
    cInfo[i][Color_2] = cache_get_field_content_int(i,"Color_2",dbhandle);
    cInfo[i][kennzeichen] = cache_get_field_content_int(i,"kennzeichen",dbhandle);
    SAPDCars[i] = CreateVehicle(cInfo[i][model],cInfo[i][c_x],cInfo[i][c_y],cInfo[i][c_z],cInfo[i][c_r],cInfo[i][Color_1],cInfo[i][Color_2],-1);
    new string[128];
    format(string, sizeof(string), "Test3-%i",cInfo[i][kennzeichen]);
    SetVehicleNumberPlate(cInfo[i][db_id],string);
    Car++;
    }
    }
    return true;
    }

  • @Nicolas9897:
    was sollen dir denn jetzt damit?


    Dein fehler hab ich dir doch oben schon erläutert.
    Du gibts nur das "Fahrzeug" aus, in dem der Spieler sitzt.
    Mehr nicht.


    Allerdings verlautraust du in demen "Load" Code dem Server und nicht den Fahrzeugen,
    was zu einem Mismatch führen wird

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Ich will auch nur dieses Fahrzeug ausgeben.
    Er gibt mir im Fahrzeug (ID 1) den letzten Datenbanksatz aus.
    Aber sonst schreibt er mir immer überall 0

  • dann hast du ein mismatch in deinem Code.


    Du lädst stumpf alle Sachen aus der Datenbank raus warlos in den Array, egal welche ID dem Fahrzeug nun zu geordnet ist.


    Das kann so nicht funktionieren, da spätestens dann wenn die Fahrzeugid mit der Tabellen ID nicht übereinstimmt, was schon bei ID 1 der fall ist, eion Mismatch der Daten auftritt.


    Entweder du liest die Daten richtig in den Array ein, sprich geoordnet, bspw. die CarID ist den ArrayIndex oder du gibst deinem Array einen Index auf die FahrzeugID.
    Die musst du dann aber überall überprüfen, damit nicht wieder ein Mismatch entsteht

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski