Beiträge von Whice

Aus gegebenem Anlass: Sichert eure Backupcodes wenn ihr die Zwei-Faktor-Authentifizierung aktiviert habt!

Infos dazu findet ihr nochmal hier

    Im MySQL-Log bekomme ich diesen Fehler.

    Na der Fehler ist ja recht selbsterklärend. Du versuchst grade ein name und passwort in die accounts Tabelle zu geben, dabei gibst du nicht an was das Feld ck sein soll, somit weiß die DB auch nicht, was jene einfügen soll und lässt es ganz.

    Somit müsstest du entweder die Abfrage ändern oder die Tabelle ändern und für ck eine Default Value angeben (Je nach Typ (int, varchar, etc.))

    So müsste es gehen wenn ich mich nicht irre :-)

    Auch das wird schwierig, da in Zeile 8 Variablen erstellt werden, die allerdings nicht gefüllt werden (_fid, _rang, _fmodel, _color). Diese müssten, so wie es die Nachricht besagt auch in Zeile 5 abgefragt werden.


    Es wird kein Fahrzeug erstellt

    Dann wäre es sinnvoll, wenn du uns mal die Funktion zeigst, die das Fahrzeug erstellt. (createFactionVehicle)

    Weiterhin hast du einige Dopplungen in deinem Code: So liest du beispielsweise in Zeile 5 _varname aus, fragst die in Zeile 6 ab und liest sie nochmals in Zeile 8 aus.

    Zusätzlich würde es beispielsweise beim Löschen auch Sinn ergeben fracveh_VehID zurückzusetzen, da du diese zur Abfrage verwendest und sich ggf. dopplen könnte und so Fehler entstehen (DestroyVehicle auf ein falsches Fahrzeug aufrufen)

    Finde meinen SQL Fehler nicht, hoffe das mich dabei jemand unterstützen kann.


    Ziel der Prozedur:

    • Ausführung: CALL storage_transfer(item_id, amount, from_Storage, into_Storage)
    • amount von der Ausgangs-Storage (from_storage) abziehen
      • Falls dann 0 wäre - Eintrag komplett löschen
      • Falls über 0 wäre - Neuer Amount vom existierenden Amount abziehen
      • Falls amount mehr ist als exisitierender Amount - Prozedur abbrechen
    • amount in den neuen Storage (into_storage) hinzufügen
      • Falls Eintrag nicht exisitiert - Eintrag erstellen
      • Falls Eintrag exisiert - Neuer Amount vom existierenden Amount entfernen
    • Vorher zu Prüfen:
      • Ob übergebener amount < 0 oder > 99 - dann Prozedur abbrechen
      • Wenn nicht weitermachen

    // EDIT Fehler gefunden

    Was könnte das sein?

    Erstmal alles.

    Bei solchen Problemen würde ich anfangen die einzelnen Variablen zu debuggen und zu schauen, ob dies auch die richtigen Werte sind.

    Weiterhin macht es immer Sinn zu schauen, ob irgendwas nicht ausgeführt wird (Beispielsweise die mysql query)

    allerdings setzt in meinem Code er das Adminlevel trozdem obwohl der name nicht übereinstimmt

    Das liegt daran, dass wenn beide Strings übereinstimmen (also die ausgabe von strcmp 0 ist), du die Nachricht "Was glaubst du wer du bist" sendest.

    Es reicht nun also das ganze zu invertieren, also das ! vorne weg und hinten ran != 0



    //EDIT
    Hier dazu mal die Zeile, da die Nachricht etwas unübersichtlich ist

    Code
    1. // Wenn die Strings nicht übereinstimmen, also Rückgabe von strcmp nicht 0 ist, dann sende Fehlermessage
    2. if(strcmp(OWNER, name, true, strlen(OWNER)) != 0) return SendClientMessage(playerid,COLOR_RED,"Was glaubst du wer du bist!");

    Moin,

    wenn du einen Fehler in einer Query hast, sollte sich im Normalfall eine extra Datei erstellen (mysql_log o.Ä.) dort siehst du immer direkt den Fehler.


    In deinem Fall ist nun ein Fehler in deiner Update-Anfrage passiert. Vor dem WHERE darf kein , mehr kommen, dies also einfach entfernen.

    Für die Zukunft kann ich dir auch immer Validatoren empfehlen. Beispielweise diesen hier: https://www.eversql.com/sql-syntax-check-validator/

    Whice Habe das OnePlus Nord seit release und muss sagen ist immer noch Top das Handy. Akku hat kein bisschen nachgelassen und rennt wie sonst was :D Performance ist ebenfalls 1A . Denke mal das wird bei dem Nord CE nicht anders sein^^

    Hört sich ja recht gut an, hatte vorher das Oppo A91, was ich auch sehr gut fand. Wollte mich nun aber mal vom 2k Bildschirm und den 12 GB Ram flashen lassen :D