script fehler oder Datenbankfehler?

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 Morgen.


    Meine Frage ist:



    Ist das nun ein Script fehler oder ein fehler von der DatenBank selbst?




    Enum:
    enum autoEnum{
    id_x,
    model,
    besitzer[MAX_PLAYER_NAME],
    Float:c_x,
    Float:c_y,
    Float:c_z,
    Float:c_r
    }



    variable:
    new aInfo[50][autoEnum];



    createplayercar:
    createPlayerCar(playerid,modelid,Float:x,Float:y,Float:z,Float:r)
    {
    for(new i=0; i<sizeof(aInfo); i++)
    {
    if(aInfo[i][id_x]!=0)continue;
    GetPlayerName(playerid,aInfo[i][besitzer],MAX_PLAYER_NAME);
    aInfo[i][c_x] =x;
    aInfo[i][c_y] =y;
    aInfo[i][c_z] =z;
    aInfo[i][c_r] =r;
    aInfo[i][model] =modelid;
    aInfo[i][id_x] = CreateVehicle(modelid,x,y,z,r,-1,-1,-1);
    new string[128];
    format(string,sizeof(string),"Das Auto aInfo[%i]wurde erstellt",i);
    SendClientMessageToAll(duneklhelblau,string);
    saveCarToDB(playerid,i);
    return 1;
    }
    return 1;
    }



    autoerstellen/autolöschen:
    ocmd:autoentfernen(playerid,params[])
    {
    if(!isAdmin(playerid,6))
    return SendClientMessage(playerid,rot,"Dein Adminrang ist nicht hochgenug!");
    if(!IsPlayerInAnyVehicle(playerid))
    return SendClientMessage(playerid,duneklhelblau,"Du befindest dich nicht in ein Fahrzeug!");
    DestroyVehicle(GetPlayerVehicleID(playerid));
    return 1;
    }
    ocmd:erstelleautos(playerid,params[])
    {
    if(!isAdmin(playerid,6))
    return SendClientMessage(playerid,rot,"Dein Adminrang ist nicht hochgenug!");
    new mID,pID;
    if(sscanf(params,"ui",pID,mID))
    return SendClientMessage(playerid,duneklhelblau,"INFO: /erstelleautos [playerid][model]");
    if(mID<400||mID>611)return SendClientMessage(playerid,rot,"Falsche Modelid!");
    new Float:xc,Float:yc,Float:zc,Float:rc;
    GetPlayerPos(pID,xc,yc,zc);
    GetPlayerFacingAngle(pID,rc);
    createPlayerCar(pID,mID,xc,yc,zc,rc);
    return 1;


    Speichern in der Datenbank:
    saveCarToDB(playerid,carid)
    {
    new query[128];
    format(query,sizeof(query),"INSERT INTO autos(besitzer,model,x,y,z,r) VALUES('%i','%i','%f','%f','%f','%f')",sInfo[playerid][id],aInfo[carid][model],aInfo[carid][c_x],aInfo[carid][c_y],aInfo[carid][c_z],aInfo[carid][c_r]);
    mysql_function_query(dbhandle,query,false,"","");
    return 1;
    }



    So nun wird mir es so aber angezeigt:




    Ich hoffe man kann mir helfen

  • Meinst du, dass beide Fahrzeuge die ID 0 haben?
    Das kannst du ganz leicht verhindern, indem du der Spalte "id" den PRIMARY KEY gibst und sie auf AUTO_INCREMENT (A_I) setzt.


    Beachte, dass du die "id" auch beim Laden in die Fahrzeugvariable speichern musst, damit du mit einem UPDATE darauf zugreifen kannst, sonst findest du die entsprechende Zeile in der Tabelle ja nicht mehr.