MySQL Vehiclesystem Syntax Fehler

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
  • Moin Bready,


    Ich hab ein Problem mit dem Syntax meines Vehicle Systems basierend auf MySQL:


    Zeilen:


    AddVehicle(Carid, Carmodel, Carcolor1, Carcolor2, Float:CarX, Float:CarY, Float:CarZ, Float:CarA, CarCost, CarSell)
    {
    new data[256];
    format(query, sizeof(query), "SELECT * FROM `Vehicles` WHERE CarID = '%d';",Carid);
    mysql_query(query);
    mysql_store_result();
    if(mysql_num_rows() > 0)
    {
    printf("");
    printf(" ::::::::::::::::::::::: Car Loaded :::::::::::::::::::::::");
    printf("");
    VehicleSystem[Carid][CarID]= mysql_GetInt("Vehicles", "CarID","CarID",Carid); // hier
    format(data, sizeof(data), "CarID: %d", VehicleSystem[Carid][CarID]);
    printf(data);
    // usw.....

    Die Funktion GetInt:
    stock mysql_GetInt(Table[], Field[], Where[], Where2[])
    {
    return strval(mysql_GetString(Table, Field, Where, Where2));
    }
    stock mysql_GetString(Table[], Field[], Where[], Where2[])
    {
    new tmpquery[128], Get[128];
    format(tmpquery, 128, "SELECT %s FROM %s WHERE %s = '%s'", Field, Table, Where, Where2);
    mysql_query(tmpquery);
    mysql_store_result();
    mysql_fetch_row(Get);
    return Get;
    }
    Die Errors:

    Zitat

    C:\Dokumente und Einstellungen\Admin\Eigene Dateien\Downloads\VehicleSystem\filterscripts\VehicleSystem.pwn(1844) : error 035: argument type mismatch (argument 4)

    Was ist hierbei falsch?



    edit: Funktionen vergessen


    edit2: Ich habe es zuvor so versucht:
    mysql_fetch_field(1,data);
    VehicleSystem[Carid][Model]=strval(data);
    Doch da stürtzt dann der komplette Server ab,
    Oder so:
    mysql_fetch_field_row("Model",data);
    VehicleSystem[Carid][Model]=strval(data);
    dabei Lädt er die Fahrzeuge nicht, er setzt alle Werte einfach mit 0

    2 Mal editiert, zuletzt von RG_ ()

  • Ich habs mal anders probiert:
    printf("");
    printf(" ::::::::::::::::::::::: Car Loaded :::::::::::::::::::::::");
    printf("");
    new Get[128];
    format(data, 128, "SELECT CarID FROM Vehicles WHERE CarID = '%s'",Carid);
    mysql_query(data);
    mysql_store_result();
    mysql_fetch_row(Get);
    VehicleSystem[Carid][CarID]= strval(Get);
    //mysql_GetInt("CarID", "Vehicles","CarID",Carid);
    format(Get, sizeof(Get), " CarID: %d", VehicleSystem[Carid][CarID]);
    printf(Get);




    format(data, 128, "SELECT Model FROM Vehicles WHERE CarID = '%s'",Carid);
    mysql_query(data);
    mysql_store_result();
    mysql_fetch_row(Get);
    VehicleSystem[Carid][Model]=strval(Get);
    format(Get, sizeof(Get), " CarModel: %d", VehicleSystem[Carid][Model]);
    printf(Get);

    format(data, 128, "SELECT Locked FROM Vehicles WHERE CarID = '%s'",Carid);
    mysql_query(data);
    mysql_store_result();
    mysql_fetch_row(Get);
    VehicleSystem[Carid][Locked]=strval(Get);
    format(Get, sizeof(Get), " CarLocked: %d", VehicleSystem[Carid][Locked]);
    printf(Get);

    format(data, 128, "SELECT CarX FROM Vehicles WHERE CarID = '%s'",Carid);
    mysql_query(data);
    mysql_store_result();
    mysql_fetch_row(Get);
    VehicleSystem[Carid][Carx]=strval(Get);
    format(Get, sizeof(Get), " CarX: %f", VehicleSystem[Carid][Carx]);
    printf(Get);

    format(data, 128, "SELECT CarY FROM Vehicles WHERE CarID = '%s'",Carid);
    mysql_query(data);
    mysql_store_result();
    mysql_fetch_row(Get);
    VehicleSystem[Carid][Cary]=strval(Get);
    format(Get, sizeof(Get), " CarY: %f", VehicleSystem[Carid][Cary]);
    printf(Get);


    format(data, 128, "SELECT CarZ FROM Vehicles WHERE CarID = '%s'",Carid);
    mysql_query(data);
    mysql_store_result();
    mysql_fetch_row(Get);
    VehicleSystem[Carid][Carz]=strval(Get);
    format(Get, sizeof(Get), " CarZ: %f", VehicleSystem[Carid][Carz]);
    printf(Get);



    format(data, 128, "SELECT CarA FROM Vehicles WHERE CarID = '%s'",Carid);
    mysql_query(data);
    mysql_store_result();
    mysql_fetch_row(Get);
    VehicleSystem[Carid][Cara]=strval(Get);
    format(Get, sizeof(Get), " CarA: %f", VehicleSystem[Carid][Cara]);
    printf(Get);


    format(data, 128, "SELECT Color1 FROM Vehicles WHERE CarID = '%s'",Carid);
    mysql_query(data);
    mysql_store_result();
    mysql_fetch_row(Get);
    VehicleSystem[Carid][Color1]=strval(Get);
    format(Get, sizeof(Get), " CarColor1: %d", VehicleSystem[Carid][Color1]);
    printf(Get);

    format(data, 128, "SELECT Color2 FROM Vehicles WHERE CarID = '%s'",Carid);
    mysql_query(data);
    mysql_store_result();
    mysql_fetch_row(Get);
    VehicleSystem[Carid][Color2]=strval(Get);
    format(Get, sizeof(Get), " CarColor2: %d", VehicleSystem[Carid][Color2]);
    printf(Get);

    format(data, 128, "SELECT Price FROM Vehicles WHERE CarID = '%s'",Carid);
    mysql_query(data);
    mysql_store_result();
    mysql_fetch_row(Get);
    VehicleSystem[Carid][Price]=strval(Get);
    format(Get, sizeof(Get), " CarPrice: %d", VehicleSystem[Carid][Price]);
    printf(Get);

    format(data, 128, "SELECT Sell FROM Vehicles WHERE CarID = '%s'",Carid);
    mysql_query(data);
    mysql_store_result();
    mysql_fetch_row(Get);
    VehicleSystem[Carid][Sell]=strval(Get);
    format(Get, sizeof(Get), " CarSell: %d", VehicleSystem[Carid][Sell]);
    printf(Get);

    format(data, 128, "SELECT Owner FROM Vehicles WHERE CarID = '%s'",Carid);
    mysql_query(data);
    mysql_store_result();
    mysql_fetch_row(Get);
    strmid(VehicleSystem[Carid][Owner],Get,0,20,20);
    format(Get, sizeof(Get), " CarOwner: %s", VehicleSystem[Carid][Owner]);
    printf(Get);
    printf("");



    Die Ausgabe sieht so aus:


    Alles ist auf 0 und er lädt nur "ein Auto" wenn er es überhaupt laden würde


    Doch die Tabelle ist gefüllt:
    CarID Model Locked CarX CarY CarZ CarA Color1 Color2 Price Sell Owner


    1 411 0 2 1 1 1 63 13 20000 10000 Unbought
    2 487 0 1857.56 -2404.08 13.7312 147.893 50 108 7500 3750 Unbought
    usw....
    edit:Fehler im Code edited

    Einmal editiert, zuletzt von RG_ ()

  • Hallo


    Ich habe das selbe und ich gebe dir an dieser Stelle einen guten Tipp. Du willst sicherlich einmal Ingame Autos erstellen ? Ich wollte dies und hab das AddVehicles auseinandergenommen. Ich habe unter OnGameModeInit eine Funktion geschrieben, die die MySQL Zeilen zählt und LoadVehicles ausführt und dabei einen globalen Wert um eines erhöht. Wenn ich ein Auto erstellen will benutze ich das umgebaute AddVehicles. Mein LoadVehicles sieht momentan so aus, es könnte aber evt. Fehler enthalten, da letzthin plötzlich die ganze Tabelle weg war ;)


    for(new Carid=0; Carid<1000; Carid++)
    {
    format(query, sizeof(query), "SELECT * FROM `Vehicles` WHERE CarID = '%d';",Carid);
    mysql_query(query);
    mysql_store_result();
    if(mysql_num_rows() > 0)
    {
    AutoLineCounter++;
    LoadVehicle(Carid);
    }
    mysql_free_result();
    }


    LoadVehicle(Carid)
    {
    new data[256];
    format(query, sizeof(query), "SELECT * FROM `Vehicles` WHERE CarID = '%d';",Carid);
    mysql_query(query);
    mysql_store_result();
    if(mysql_num_rows() > 0)
    {
    mysql_fetch_field("CarID",data);
    VehicleSystem[Carid][CarID]=strval(data);
    mysql_fetch_field("Model",data);
    VehicleSystem[Carid][Model]=strval(data);
    mysql_fetch_field("Locked",data);
    VehicleSystem[Carid][Locked]=strval(data);
    mysql_fetch_field("CFrak",data);
    VehicleSystem[Carid][Fraktion]=strval(data);
    mysql_fetch_field("CJob",data);
    VehicleSystem[Carid][Beruf]=strval(data);
    mysql_fetch_field("CNoob",data);
    VehicleSystem[Carid][Noob]=strval(data);
    mysql_fetch_field("CVer",data);
    VehicleSystem[Carid][Verwahrt]=strval(data);
    mysql_fetch_field("CTun",data);
    VehicleSystem[Carid][Tunebar]=strval(data);
    mysql_fetch_field("CarX",data);
    VehicleSystem[Carid][Carx]=strval(data);
    mysql_fetch_field("CarY",data);
    VehicleSystem[Carid][Cary]=strval(data);
    mysql_fetch_field("CarZ",data);
    VehicleSystem[Carid][Carz]=strval(data);
    mysql_fetch_field("CarA",data);
    VehicleSystem[Carid][Cara]=strval(data);
    mysql_fetch_field("AdacX",data);
    VehicleSystem[Carid][Adacx]=strval(data);
    mysql_fetch_field("AdacY",data);
    VehicleSystem[Carid][Adacy]=strval(data);
    mysql_fetch_field("AdacZ",data);
    VehicleSystem[Carid][Adacz]=strval(data);
    mysql_fetch_field("AdacA",data);
    VehicleSystem[Carid][Adaca]=strval(data);
    mysql_fetch_field("Color1",data);
    VehicleSystem[Carid][Color1]=strval(data);
    mysql_fetch_field("Color2",data);
    VehicleSystem[Carid][Color2]=strval(data);
    mysql_fetch_field("Price",data);
    VehicleSystem[Carid][Price]=strval(data);
    mysql_fetch_field("Sell",data);
    VehicleSystem[Carid][Sell]=strval(data);
    mysql_fetch_field("Owner",data);
    strmid(VehicleSystem[Carid][Owner],data,0,20,20);
    mysql_fetch_field("PJ",data);
    VehicleSystem[Carid][Pj]=strval(data);
    mysql_fetch_field("T0",data);
    VehicleSystem[Carid][Tt0]=strval(data);
    mysql_fetch_field("T1",data);
    VehicleSystem[Carid][Tt1]=strval(data);
    mysql_fetch_field("T2",data);
    VehicleSystem[Carid][Tt2]=strval(data);
    mysql_fetch_field("T3",data);
    VehicleSystem[Carid][Tt3]=strval(data);
    mysql_fetch_field("T4",data);
    VehicleSystem[Carid][Tt4]=strval(data);
    mysql_fetch_field("T5",data);
    VehicleSystem[Carid][Tt5]=strval(data);
    mysql_fetch_field("T6",data);
    VehicleSystem[Carid][Tt6]=strval(data);
    mysql_fetch_field("T7",data);
    VehicleSystem[Carid][Tt7]=strval(data);
    mysql_fetch_field("T8",data);
    VehicleSystem[Carid][Tt8]=strval(data);
    mysql_fetch_field("T9",data);
    VehicleSystem[Carid][Tt9]=strval(data);
    mysql_fetch_field("T10",data);
    VehicleSystem[Carid][Tt10]=strval(data);
    mysql_fetch_field("T11",data);
    VehicleSystem[Carid][Tt11]=strval(data);
    mysql_fetch_field("T12",data);
    VehicleSystem[Carid][Tt12]=strval(data);
    mysql_fetch_field("T13",data);
    VehicleSystem[Carid][Tt13]=strval(data);
    new carr = CreateVehicle(VehicleSystem[Carid][Model],VehicleSystem[Carid][Carx],VehicleSystem[Carid][Cary],VehicleSystem[Carid][Carz]+1,VehicleSystem[Carid][Cara],VehicleSystem[Carid][Color1],VehicleSystem[Carid][Color2],600000);
    IsBuyableCar[carr]=Carid;
    SetVehicleTuning(carr);
    AutoCounter ++;
    }
    mysql_free_result();
    return 1;
    }


    Ich hoffe, ich kann ode rkonnte dir helfen, bin auch gerne bereit dir zu helfen.
    MfG dUDA

  • Da ich ein anderes MySQL Plugin nutze als du ist mysql_fetch_field in diesem Zusammenhang nicht möglich.


    Sonst würde ich es so nutzen wie es ist ^^


    Nun habe ich es so versucht:
    AddVehicles()
    {
    new Carid, Carmodel, Carcolor1, Carcolor2, Float:CarX, Float:CarY, Float:CarZ, Float:CarA, CarCost, CarSell;
    new Get[256];
    new Str[67],vTotal, Locked2,Owner2[256];
    mysql_query("SELECT * FROM `Vehicles`");
    mysql_store_result();
    vTotal = mysql_num_rows();
    if(vTotal > 0)
    {
    while(mysql_fetch_row(Str))
    {
    printf("");
    printf(" ::::::::::::::::::::::: Car loading :::::::::::::::::::::::");
    printf("");
    sscanf(Str, "p<|>iiiffffiiiis",Carid,Carmodel,Locked2,CarX,CarY,CarZ,CarA,Carcolor1,Carcolor2,CarCost,CarSell,Owner2);
    printf("1");
    VehicleSystem[Carid][CarID]=Carid;
    VehicleSystem[Carid][Model]=Carmodel;
    VehicleSystem[Carid][Locked]=Locked2;
    VehicleSystem[Carid][Carx]=CarX;
    VehicleSystem[Carid][Cary]=CarY;
    VehicleSystem[Carid][Carz]=CarZ;
    VehicleSystem[Carid][Cara]=CarA;
    VehicleSystem[Carid][Color1]=Carcolor1;
    VehicleSystem[Carid][Color2]=Carcolor2;
    VehicleSystem[Carid][Price]=CarCost;
    VehicleSystem[Carid][Sell]=CarSell;
    printf("2");
    strmid(VehicleSystem[Carid][Owner],Owner2,0,20,20);
    printf("3");
    new carr = CreateVehicle(VehicleSystem[Carid][Model],VehicleSystem[Carid][Carx],VehicleSystem[Carid][Cary],VehicleSystem[Carid][Carz]+5,VehicleSystem[Carid][Cara],VehicleSystem[Carid][Color1],VehicleSystem[Carid][Color2],600000);
    printf("4");
    //IsBuyableCar[carr]=VehicleSystem[Carid][CarID];// Das Script bricht hier die Aktion ohne Grund ab wenn dies aktiviert ist( allerdings benötige ich es)
    printf("5");
    format(Get, sizeof(Get), " CarID: %d", VehicleSystem[Carid][CarID]);
    printf(Get);
    format(Get, sizeof(Get), " Model: %d", VehicleSystem[Carid][Model]);
    printf(Get);
    format(Get, sizeof(Get), " Locked: %d", VehicleSystem[Carid][Locked]);
    printf(Get);
    format(Get, sizeof(Get), " Carx: %d", VehicleSystem[Carid][Carx]);
    printf(Get);
    format(Get, sizeof(Get), " Cary: %d", VehicleSystem[Carid][Cary]);
    printf(Get);
    format(Get, sizeof(Get), " Carz: %d", VehicleSystem[Carid][Carz]);
    printf(Get);
    format(Get, sizeof(Get), " Cara: %d", VehicleSystem[Carid][Cara]);
    printf(Get);
    format(Get, sizeof(Get), " Color1: %d", VehicleSystem[Carid][Color1]);
    printf(Get);
    format(Get, sizeof(Get), " Color2: %d", VehicleSystem[Carid][Color2]);
    printf(Get);
    format(Get, sizeof(Get), " Price: %d", VehicleSystem[Carid][Price]);
    printf(Get);
    format(Get, sizeof(Get), " Sell: %d", VehicleSystem[Carid][Sell]);
    printf(Get);
    format(Get, sizeof(Get), " Owner: %d", VehicleSystem[Carid][Owner]);
    printf(Get);
    printf("");
    printf(" ::::::::::::::::::::::: Car loaded :::::::::::::::::::::::");
    printf("");

    }
    }
    usw...


    Ergebnis:
    Er lädt alle Fahrzeuge, aber mit allen Werten auf Null:

    Edit: Habe das Plugin gewechselt und mein Hauptscript darauf angepasst, nun funktioniert es endlich!



    edit2: Kann man closen

    Einmal editiert, zuletzt von RG_ ()