Beiträge von uPrizZ.

    if (result ~= nil) then

    Prüft nur ob die SQL Ausgeführt wurde wertet sie aber nicht ab


    Aus dem MySQL Modul Wiki:

    Zitat

    In case of error this function returns nil. IF not, a MySQLResult handler. Check the MySQL result managing functions to see how to retreive the data from it.

    Und ja ehm, also ich habe keine Errors (auf keinem Debugmode). Es wird alles vernünftig ausgeführt, nur dass halt immer true in der ChatBox erscheint (was natürlich nicht immer stimmt)

    Mh ja bei meinem MySQL zeugs komm ich nach wie vor nicht weiter. Hab nun alles probiert aber wirklich nichts funktioniert.

    Hier mal nochein Beispiel das überprüft ob sich ein Username in der Tabelle befindet:

    Lua
    function checkAccount(name)
    	outputChatBox("[checkAccount] Benutzername: '"..name.."'") -- Debug
    	local result = mysql_query(handler, "SELECT * FROM mta_users WHERE username = '"..name.."'")
    	if (result ~= nil) then 
    		mysql_free_result(result) 
    		return true
    	else 
    		return false 
    	end
    end


    Das habe ich in ein Befehl gepackt mit dem ich dann überprüfen kann ob ein Account existiert ( /mysql [username] ). Das gibt mir dann entweder true oder false aus. Aber es kommt in dem Fall einfach immer true raus. Ich kann jeden scheiß eingeben und es kommt einfach immer true raus.

    Hier nochmal der Befehl:

    Lua
    function cmd_mysql(source, command, username)
    	sendPlayerMessage(source, tostring(checkAccount(username)))
    end
    addCommandHandler("mysql", cmd_mysql)

    Was mach ich falsch?!!

    Folgendes: Ein Spieler loggt sich mit Benutzername und Passwort ein, und dann werden die Accountdaten von der MySQL Datenbank geladen und als Spielerelement-Daten gespeichert.


    Es endet bei diesem Code allerdings IMMER damit dass "Fehler! Konnte deinen Username nicht finden!" ausgegeben wird. Ich kann einfach nicht verstehen wieso. Hab schon alles mögliche am mysql_query rumprobiert (mit mysql_escape usw.). Und ja, der Name existiert in der Datenbank (ich habs sogar extra nochmal per Hand eingefügt um wirklich sicher zu gehen) Hänge schon den ganzen Tag vor diesen MySQL Kleinigkeiten :/

    Warum funktioniert der Code nicht?

    Also ich bin neu hier, und finds echt "geil", wie einer einfach nur ein ein Scripter sucht, und dann alle (die eigentlich garkein Interesse haben) ins 'Thema kommen und sagen wie dumm/bescheuert/eingebildet der Fragende doch ist. Mein Gott er will "nur" 35€/Monat ausgeben und jetzt? Das ist lange kein Zeichen das hier alle ankommen müssen und rumflamen müssen.
    Wenn ihr doch kein Interesse habt, dann haltet euch wenigstens raus und bringt nicht solche ach so "hilfreichen" Antworten wie "Du findest nie einen Scripter"...

    Zitat aus dem Wiki zu dbConnect:


    Kannst also beides nutzen.

    Zu deinem Problem:

    Schreib einfach ne Funktion die dir überprüft ob eine bestimmte Tabelle existiert, wenn nein lässt du sie erstellen, ansonsten nutzt du UPDATE.
    Dann lässte bei jedem Scriptstart einfach die Funktion aufrufen


    Naja, UPDATE kann ja nur Werte einsetzten. Aber wenn ich z.B. eine Spalte hinzufügen will muss ich ja ALTER TABLE verwenden. Früher hab ich das einfach bei CREATE TABLE eingesetzt und der hat das ganz automatisch ergänzt...
    Aber ich werd jetzt aufjedenfall nocheinmal die MTA Account Funktionen verwenden! Danke für die Hilfe! :)

    EDIT: Wo werden den die Accounts von addAccount gespeichert. Und kann man den Namen der Datenbank irgendwie selber bestimmen?

    Die Standardfunktionen arbeiten sowohl mit MySQL als auch SQLite.
    Es gibt aber auch ein extra MySQL Modul, das Wiki verrät mehr dazu


    Das verwende ich ja, aber wie gesagt, ich habe damals eine Art Hilfe zu MySQL bekommen (durch die Resource), und da ich die nichtmehr hab hab ich entsprechend Probleme, wesshalb ich ja frage obs hier auch soeine Hilfe gibt.

    Ich will z.B. dass beim Serverstart eine Tabelle angelegt wird, klar das mach ich mit "CREATE TABLE". Führ ich den Script jetzt aber ein zweites Mal aus, dann funktioniert das ja nicht, da die Tabelle schon vorhanden ist. Mit dem Hilfsplugin ist es halt so, dass man einfach create table verwendet, und wenn der Tabelleninhalt aus der Funktion sich vom tatsächlichen Tabelleninhalt unterscheidet, wird die Tabelle einfach ergänzt. Dadurch muss ich nicht ständig ALTER TABLE verwenden.

    Deswegen hätte es ja sein können, dass es hier bei MTA auch schon sowas gibt.

    Zu den Standart MTA Funktionen: Heißt das ich kann die Standart Funktionen mit MySQL verwenden? Gestern wurde mit nämlich gesagt, dass SQLite verwendet wird

    Hallo ich komme aus der IVMP Szene wo Squirrel (C++ ähnlich) als Scriptsprache verwendet wird.
    Nun habe ich dort ein MySQL Accountsystem gemacht, was ich auch gerne hier in MTA machen würde (die standart Account Funktionen von MTA passen mir nicht da sie SQLite verwenden).
    Nun - da ich nicht so gut in MySQL bin - hatte ich damals eine Art "Hilfresource" die den Umgang mit MySQL um EINIGES erleichtert.

    Wollte man z.B. eine Tabelle erstellen so war man in der Lage dies bei jedem Serverstart zu machen. War die Tabelle schon vorhanden, so wurde sie einfach nur (ggf.) ergänzt. Man musste also nicht extra "ALTER TABLE" verwenden. Außerdem hatte die Resource auch noch einige andere Vorteile verschaffen...

    Wie dem auch sei, meine eigentlich Frage ist nun: Gibt es das für MTA auch? Eine Art EasyMySQL Resource?
    Hier übrigens der Link zur Resource: http://forum.iv-multiplayer.com/index.php/topic,2513.0.html (ich hoffe mal ich darf den Link postenn)

    Sollte es die Resource nicht geben, könntet ihr mich vllt helfen die originale zu übersetzten? :D

    Vielen Dank für eire Hilfe im Vorraus!
    uPrizZ.  *:)*