Beiträge von Zeuto

    Zitat


    const source[] The string you want to be escaped.
    destination[] The string to store escaped data in.
    connectionHandle The connection handle this will be processed on.


    also: mysql_real_escape_string(text,escape);


    Wie du das gemacht hast, ist das schon richtig, aber wieso neue Variablen?
    Du kannst auch folgendes machen:


    mysql_real_escape_string(n, n);


    Danke dir, deswegen sagte ich, bitte zu überprüfen :)



    C:\Users\Dominik\Desktop\Samp Server\gamemodes\Reallife.pwn(136) : error 035: argument type mismatch (argument 2)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    Ja, mach das was MrPawn geschrieben hat, dann müsste es funktionieren ;)

    Es herrschen mehrere Lösungsansätze:


    1. Bist du sicher, das auch "SpielerRegister" ausgeführt wird? - Kann gut getestet werden mit print()
    2. Ist der Name auch in Spieler[playerid][pName] gespeichert? - Am besten unter OnPlayerConnect folgenden Code eingeben:

    GetPlayerName(playerid, MAX_PLAYER_NAME, Spieler[playerid][pName] //Bitte überprüfen, schreibe gerade ohne nachzuschauen

    3. dini richtig includiert, neueste Version etc.?


    Das müsste erstmal reichen, falls es immer noch nicht klappt, sag dann Bescheid :D

    Also ich nehme mal an, dass du alle Daten aus der Tabelle "User" herholen willst.


    Dann brauchst du das .. COUNT (*) AS `count`..
    nicht


    Mach das am Besten so:



    new query[100];
    mysql_format(MyCon, query, sizeof(query), "SELECT * FROM `User` WHERE `Name` = '%s'", Player[playerid][Name]);
    und wieso %e, also ich kenne nur %s als string.


    //edit:
    ich korrigiere, da ich einen kleinen Fehler gemacht habe.
    Du hast alles richtig gemacht, dann würde ich nur das %e am Ende abändern. Sorry, falls ich für Verwirrtheit gesorgt habe..
    //edit2: Auch das mit %e hat sich geregelt, vergesst was ich geschrieben habe hahaha :)
    //edit3: Habe den Fehler:
    new query[100];
    mysql_format(MyCon, query, "SELECT COUNT(*) AS `count` FROM `User` WHERE `Name` = '%e'", Player[playerid][Name]);
    Das sizeof(query)musste weg^^ :D


    MfG

    Danke für die Info aber ich weiss leider nicht wie man das scriptet das man enter drücken muss.


    Schau mal unter "OnPlayerKeyStateChange" nach: OnPlayerKeyStateChange.
    Ist im Prinzip genau das Gleiche nur hier passiert das "Eintreten" und "Verlassen nicht über OnPlayerPickUpPickup, sondern über das Drücken der Taste..
    Dann musst du auch nicht so etwas wie "bsnenterLS" und "bsnexitLS" definieren ;)

    Vermutlich ist der Punkt, an dem du dich portest zu nah an dem Exit-Pickup, port dich etwas mehr rein, vielleicht klappt es ja dann, denn ich seh keinen Fehler im Script.
    Ansonsten kannst du auch über die "Enter"-Taste etwas scripten ;)

    Ist eigentlich recht einfach zu beheben, falls du doch nochmal anfangen willst:


    oben im script:
    new db_handle; //kannst den Namen der Variabel natürlich frei wählen


    dann:
    db_handle = mysql_connect(..., ..., ..., ...) //Da die passenden Daten reintun


    und dann immer wenn du etwas machst mit mysql, gibt es manchmal als Parameter etwas mit "database handle", da machst du das so:


    cache_get_field_content(0,"pPass",temp,db_handle); //Also achte auf das "db_handle" am Ende


    Dann müsste auch kein Fehler mehr auftauchen :)

    Meistens liegt ein Klammerfehler vor den ganzen Zeilen vor.. Überprüf mal, wie bereits varreZ erwähnte, die Klammern, also die "{" und die "}".

    spielerD[playerid][adminlevel] = alevelin /makeadmin einfügen, dann muss es wieder funken


    Erklärung:


    - Bei /makeadmin wird in der Datei der Wert gespeichert, aber nicht in der Variable.
    - es wird aktuSpieler durchgeführt.
    - Da du vergessen hast, die Variable im Script zu ändern, ist sie ja noch 0 und der Wert in der Datei wird wieder ersetzt durch die 0.


    :)

    Ja anscheinend gibt es die Spalte "id" nicht.. Mehr verstehe ich darunter nicht, vielleicht schaust du die ganze zeit in der falschen Tabelle nach oder so?


    //edit: Schick mal einen Screen von deiner Tabelle, dann kann man das besser beurteilen, wobei jetzt ist es egal, da es ja jetzt funktioniert :)

    Hast du mal versucht, aus dem langen Query zwei kürzere Querys zu machen? Wie gesagt, kann sein dass der Query einfach zu lang ist.. :D


    //edit: versuch das mal so: (habe nur leerzeichen nach den Kommas hinzugefügt

    format(query,sizeof(query),"UPDATE user SET level='%i', money='%i', alevel='%i', fraktion='%i, rang='%i' WHERE id='%i'",
    sInfo[playerid][level],GetPlayerMoney(playerid),sInfo[playerid][alevel],sInfo[playerid][fraktion],sInfo[playerid][rang],sInfo,sInfo[playerid][db_id]);