Brauche Hilfe bei MySQL

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
  • Hallo Community,
    ich bin gerade dabei mein Autosystem in mysql umzuschreiben. Ich weiß bloß nicht wie ich einzelne Spalten auslesen kann. Jeder kann maximal 4 autos haben und ich habe halt eine Spalte aBesitzer gemacht und die habe ich erstellt um die spalten auszulesen, aber jetzt weiß ich nicht, wie ich die einzelnen spalten auslesen kann, so dass ich die autos einzelnd spawnen lassen kann. Bin neu in MySQL :s.
    Fals irgendwelche Code teile gebraucht werden schreibt es einfach.


    Mit freundlichen Grüßen und Dankend im Voraus
    Adrian Rodriguez

  • new _query[128],_string[128];
    format(_query,sizeof(_query),"SELECT * FROM Datenbank WHERE Name='%s' ",SpielerName);
    mysql_query();
    mysql_store_result();
    while(mysql_fetch_row(_string,"|"))
    {
    sscanf(_string,p<|>e<sssiiif>,variablen);
    }
    mysql_free_result();


    lg huGGy

  • damit splittest du die datenbanken auf die verschiedenvariablen.


    Name (string) |Alter (intenger) |Dingen (string)


    steht in der datenbank


    der sscanf code wenn die Variable eine enum ist


    sscanf(_string,p<|>e<sis>,SpielerInfo[playerid][sName],SpielerInfo[playerid][sAlter],Variabledingen);


    und hir ohne enum


    sscanf(_string,p<|>sis,sName[playerid],sAlter[playerid],Variabledingen);


    Das p<|> steht für den Parameter der die Dantensätze voneinander trennt.


    lg huGGy ich hoffe ich habe es gut erklärt.

  • So habe jetzt alles soweit gemacht, auch das mit dem Speichern. Jetzt ist nur meine frage: Wie mache ich es so, dass wenn man 4 Autos hat, dass man sich keins mehr kaufen kann und eine nachricht kommt. Ein weiteres kann man sich nicht kaufen, aber wie mache ich, dass dort eine Nachricht kommt. Hier das stück Code:


    [..]else if(dialogid == Dialog_Buycar)
    {
    if(response)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    for(new i = 0; i < sizeof Buycars; i++)
    {
    if(vehicleid == kaufauto[i])
    {
    new geld = GetPlayerMoney(playerid);
    if(geld >= Buycars[i][Preis])
    {
    for(new a = 0; a < MAX_CARS_PER_PLAYER; a++)
    {
    new _query[128],count;
    format(_query,128,"SELECT * FROM autos WHERE aBesitzer = '%s' AND aNummer = '%i'",PlayerName(playerid),i);
    mysql_query(_query);
    mysql_store_result();
    count = mysql_num_rows();
    mysql_free_result();
    if(count == 0){
    AutoKaufen(playerid,i);
    }
    else continue;
    }
    }
    else
    {
    SendClientMessage(playerid,0xDD0000FF,"Fehler: Du hast nicht genügend Geld!");
    UnFreezePlayer(playerid);
    RemovePlayerFromVehicle(playerid);
    }
    }
    }
    }[..]


    und ich habe ein Error bekommen:

    Code
    Selfmade.pwn(4829) : error 035: argument type mismatch (argument 3)
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    1 Error.
    ================ READY ================


    Die Zeile dazu:
    while(mysql_fetch_row(_string,"|"))

  • /e Habe ein weiteres Problem. Wenn ich ein Auto kaufe spawnt keins Geld wird auch nicht abgezogen man wird nur entfreezt :(
    Hier mal der Code von Autokaufen


    public AutoKaufen(playerid,autoid)
    {
    for(new i = 0; i < sizeof Buycars; i++)
    {
    if(GetPlayerVehicleID(playerid) == kaufauto[i])
    {
    for(new j = 0; j < sizeof Autohaus; j++)
    {
    if(!strcmp(Autohaus[j][Name],Buycars[i][Autohausname],true))
    {
    for(new a = 0; a < MAX_CARS_PER_PLAYER; a++)
    {
    new query[128], count;
    format(query,128,"SELECT * FROM autos WHERE aBesitzer = '%s' AND aNummer = '%i'",PlayerName(playerid),a);
    mysql_query(query);
    mysql_store_result();
    count = mysql_num_rows();
    mysql_free_result();
    if(count==0)
    {
    format(query, sizeof(query), "INSERT INTO autos (aNummer, aBesitzer, aModelid, aPosX, aPosY, aPosZ, aPosA) VALUES ('%i', '%s', '%i', '%f', '%f', '%f', '%f')",a,PlayerName(playerid), Buycars[i][modelid], Autohaus[j][spawnx],Autohaus[j][spawny],Autohaus[j][spawnz],Autohaus[j][spawna]);
    new nschild[24];
    Spielercar[playerid][autoid] = CreateVehicle(Buycars[i][modelid],Autohaus[j][spawnx],Autohaus[j][spawny],Autohaus[j][spawnz],Autohaus[j][spawna],0,0,-1);
    format(nschild,24,"GSR-%d",Spielercar[playerid][autoid]);
    SetVehicleNumberPlate(Spielercar[playerid][autoid],nschild);
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid,1);
    GivePlayerMoney(playerid,-Buycars[i][Preis]);
    Autos[playerid][autoid][aModelid] = Buycars[i][modelid];
    Autos[playerid][autoid][aHP] = 1000.00;
    Autos[playerid][autoid][aColor1] = 0;
    Autos[playerid][autoid][aColor2] = 0;
    Autos[playerid][autoid][aPaintjob] = 3;
    Autos[playerid][autoid][aPosX] = Autohaus[j][spawnx];
    Autos[playerid][autoid][aPosY] = Autohaus[j][spawny];
    Autos[playerid][autoid][aPosZ] = Autohaus[j][spawnz];
    Autos[playerid][autoid][aPosA] = Autohaus[j][spawna];
    Autos[playerid][autoid][aLocked] = 0;
    Autos[playerid][autoid][aSpoiler] = 0;
    Autos[playerid][autoid][aWheels] = 0;
    Autos[playerid][autoid][aNitro] = 0;
    Autos[playerid][autoid][aRoof] = 0;
    Autos[playerid][autoid][aHood] = 0;
    Autos[playerid][autoid][aSideskirt] = 0;
    Autos[playerid][autoid][aLamps] = 0;
    Autos[playerid][autoid][aExhaust] = 0;
    Autos[playerid][autoid][aStereo] = 0;
    Autos[playerid][autoid][aHydraulics] = 0;
    Autos[playerid][autoid][aVentRight] = 0;
    Autos[playerid][autoid][aVentLeft] = 0;
    Autos[playerid][autoid][aFrontBumper] = 0;
    Autos[playerid][autoid][aRearBumper] = 0;
    format(Autos[playerid][autoid][aName],60,VehicleName[GetVehicleModel(Buycars[i][modelid]-400)]);
    return 1;
    }else continue;
    }
    }
    }
    }
    }
    return 1;
    }