MySQL Datenbank erstellen,schreiben,lesen

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
  • So hab noch ne Frage bezüglich MYSQL.


    Wenn ich ne Tabelle hab, Spalte "ID" mit Auto Increment und Primary Key, dann wird ja beim Anlegen eines neuen Users die "ID" automatisch um Eins erhöht um eine Zuweisung möglich zu machen.


    Jetzt meine Frage :
    Ich habe 3 User


    ID 0 User 0
    ID 1 User 1
    ID 2 User 2


    Wenn ich jetzt aber User 1 lösche also es so aussieht:


    ID 0 User 0
    ID 2 User 2


    Und dann einen neuen User mache heißt dieser


    ID 3 User 3.


    Und meine Tabelle sieht so aus


    ID 0 User 0
    ID 3 User 3
    ID 2 User 2
    (Sortierung nach ID)


    Kann ich das auch irgentwie machen, dass dann die Lücke zwischen 0 und 2 gefüllt wird ? Möglichst Automatisch. Also dass der neue User dann die ID 2 bekommt.

  • Es KÖNNTE gehen, allerdings wäre das recht umständlich und viel zu scripten denk ich mal.
    Aber in einer datenbank sollte man eh nichts löschen, wenn dann verändern, aber nicht löschen.
    Damit der User nicht mehr auf den Server kann, kannst du ja ein neues feld (z.B. bann) machen.

  • Warum wird das hier nicht in die Tabelle geschrieben. Alles, also alte Datei löschen; Texte ausgeben, funktioniert. Nur die MYSQL Abfragen nicht.


    Die Verbindungsdaten sind auf jeden fall richtig, denn eine Verbindung zu MYSQL wird aufgebaut.


    new query[128],data[128],laenge,string[128];
    new playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,playername,sizeof(playername));
    laenge = strlen(inputtext);


    format(string,sizeof(string),"%s.dini",playername);


    if(strcmp(dini_Get(string,"Password"),inputtext,false)==0 && laenge != 0)
    {
    mysql_connect("host","user","passwort","datenbank",1);

    format(query,sizeof(query),"INSERT INTO `User` (`Name`, `Password`, `Admin`, `Kills`, `Tode`, `Warn`, `Ban`) VALUES ('%s', '%s', '%d', '%d', '%d', '%d', '%d')", playername, dini_Get(string,"Password"),dini_Int(string,"Admin"),dini_Int(string,"Kills"),dini_Int(string,"Tode"),dini_Int(string,"Warn"),dini_Int(string,"Ban"));
    mysql_query(query);


    format(query,sizeof(query),"UPDATE `Datenbank`.`User` SET `Prison` = '%d' WHERE `User`.`Name` = '%s'",dini_Int(string,"Prison"),playername);
    mysql_query(query);


    format(query,sizeof(query),"UPDATE `Datenbank`.`User` SET `Premium` = '%d' WHERE `User`.`Name` = '%s'",dini_Int(string,"Premium"),playername);
    mysql_query(query);


    format(query,sizeof(query),"UPDATE `Datenbank`.`User` SET `Rank` = '%d' WHERE `User`.`Name` = '%s'",dini_Int(string,"Rank"),playername);
    mysql_query(query);


    format(query,sizeof(query),"UPDATE `Datenbank`.`User` SET `Punkte` = '%d' WHERE `User`.`Name` = '%s'",dini_Int(string,"Punkte"),playername);
    mysql_query(query);


    format(query,sizeof(query),"SELECT * FROM User WHERE Name = '%s'", playername);
    mysql_query(query);


    mysql_fetch_field("Admin",data);
    SetPVarInt(playerid,ADMIN_KEY,strval(data));


    mysql_fetch_field("Kills",data);
    SetPVarInt(playerid,KILLS_KEY,strval(data));


    mysql_fetch_field("Tode",data);
    SetPVarInt(playerid,TODE_KEY,strval(data));


    mysql_fetch_field("Warn",data);
    SetPVarInt(playerid,WARN_KEY,strval(data));


    mysql_fetch_field("Prison",data);
    SetPVarInt(playerid,PRISON_KEY,strval(data));


    mysql_fetch_field("Ban",data);
    SetPVarInt(playerid,BAN_KEY,strval(data));


    mysql_fetch_field("Premium",data);
    SetPVarInt(playerid,PREMIUM_KEY,strval(data));


    mysql_fetch_field("Rank",data);
    SetPVarInt(playerid,RANK_KEY,strval(data));


    mysql_fetch_field("Punkte",data);
    SetPVarInt(playerid,PUNKTE_KEY,strval(data));


    format(query,sizeof(query),"UPDATE `Datenbank`.`User` SET `Lastlogin` = '%s' WHERE `User`.`Name` = '%s'",GetTime(),playername);
    mysql_query(query);


    mysql_close();

    dini_Remove(string);


    SetPVarInt(playerid,ISTEINGELOGGT_KEY,1);
    SendClientMessage(playerid,weiß,"Einloggen erfolgreich. Bereit zum Spielen");
    SendClientMessage(playerid,weiß,"Dein Account wurde auf MYSQL umgestellt. Bei Problemen kontaktieren bitte einen Admin");


    new string3[128];
    format(string3,sizeof(string3),"Spieler %s hat sich eingeloggt",playername);


    print("-----");
    print(string3);
    }