MySql Problem

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
  • Hey liebe Brotfischer,


    ich bastel zurzeit mal wieder weng an meinem server rum. Ich bin endlich auf MYSQL umgestiegen nun will ich abfragen ob ein eintrag unter einem gewissen namen vorhanden ist. Soweit sogut nur crasht dann immer der ganze server ohne eine meldung.



    new query[256];
    new data[255];
    new bedienung[256];
    new Eintrag1Str[256];
    new Eintrag2Str[256];


    GetServerVarAsString("Eintrag1", Eintrag1Str, sizeof(Eintrag1Str));
    GetServerVarAsString("Eintrag2", Eintrag2Str, sizeof(Eintrag2Str));


    format(bedienung, sizeof(bedienung), "Eintrag='%s'", Eintrag1Str);
    format(query, sizeof(query), "SELECT * FROM Spieler WHERE %s", bedienung);


    mysql_query(query);
    mysql_store_result();


    if(mysql_num_rows())
    {
    mysql_free_result();
    printf("Eintrag1 im System gefunden!");


    format(bedienung, sizeof(bedienung), "Eintrag2='%s'", Eintrag2Str);
    format(query, sizeof(query), "SELECT * FROM Spieler WHERE %s", bedienung);


    mysql_query(query);
    mysql_store_result();


    if(mysql_num_rows())
    {
    printf("Eintrag2 im System gefunden!");
    }
    }


    was ist daran falsch? Im voraus ich habe bisjetzt noch nie mit mysql in samp gearbeitet.


    Hoffendlich könnt ihr mir helfen.


    MfG
    Mischi

    Einmal editiert, zuletzt von Mischi ()

  • glaube ehr das wenn du alle Accounts abspeicherst der server crasht^^
    hatte das problem auch mal weiß aber nimmer wie ich das gefixxt habe :D

    Zitat

    naja aufm homeserver mit kumpel getestet und nix laggt von daher sollte nen richtiger server mit sowas keine probs haben

    *an Kopf schlag
    sowas kommt Raus wenn man erst absendet ohne nachzudenken. Bitte Leute Hirn einschalten beim Posten...

  • nein das mit den speichern geht alles.


    kommentiere ich diesen part aus geht wieder alles. und der server startet. vil. sollte ich dazu sagen das das bei ongamemodeint ist. also davor gar kein anderes ereignis ausgeführt wird.


    MfG
    Mischi

    2 Mal editiert, zuletzt von Mischi ()

  • Danke Tropper. aber wie gesagt verstehe ich nicht viel von mysql. bzw nur ein bisschen^^


    könntest du mir ein beispiel dazu geben oder mir die abfrage verbessern?


    MfG
    Mischi

    Einmal editiert, zuletzt von Mischi ()

  • Habe ich oben doch ;)

    ja aber genau das habe ich doch gemacht



    format(bedienung, sizeof(bedienung), "Eintrag='%s'", Eintrag1Str);
    format(query, sizeof(query), "SELECT * FROM Spieler WHERE %s", bedienung);


    format(query, sizeof(query), "SELECT * FROM Spieler WHERE Eintrag='%s', bedienung);


    was doch soziemlich das gleiche ist bis auf die leerzeichen, oder?


    und was ist mit deinem 2.?


    MfG
    Mischi

    4 Mal editiert, zuletzt von Mischi ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Pushen ist hier untersagt!
    Es wird dir schon einer helfen der ahnung von der Materie hat.
    Gedulde dich!

    Tut mich sry aber das ist verdammt wichtig für mich. Aber keiner antwortet :(


    AN DIE SCRIPTERGÖTTER: "HELFT MIR!!" :D


    MfG

    Einmal editiert, zuletzt von Mischi ()

  • In deinem beispiel reicht das WBB Pawno-Plugin ja schon aus :
    format(query, sizeof(query), "SELECT * FROM Spieler WHERE Eintrag='%s', bedienung);
    2 Klammern auf, eine zu...


    Und ich meinte, du brauchst lediglich den befhel mysql_fetch_field (in dem MySQL Plugin Thread genauer beschrieben) verwenden,
    und dir dann das Ergebnis wiedergeben lassen

  • In deinem beispiel reicht das WBB Pawno-Plugin ja schon aus :
    format(query, sizeof(query), "SELECT * FROM Spieler WHERE Eintrag='%s', bedienung);
    2 Klammern auf, eine zu...


    Und ich meinte, du brauchst lediglich den befhel mysql_fetch_field (in dem MySQL Plugin Thread genauer beschrieben) verwenden,
    und dir dann das Ergebnis wiedergeben lassen

    achso xD oke danke erstmal. Werde ich denn gleich ausprobieren.


    Edit: So ausprobiert aber ich bekomm das immer noch nicht hin ... Kann mir hier irgendjemand ein BSP. geben wie ich das mache? Brauche wirklich dringend hilfe!

    Einmal editiert, zuletzt von Mischi ()

  • Hi


    Also ich checke sowas immer so:


    new var[70];
    format(var, sizeof(var), "SELECT * FROM `Tabellenname` WHERE `Bla`='%s'",bla);
    samp_mysql_query(var);
    samp_mysql_store_result();


    if (samp_mysql_num_rows() != 0)
    {


    Bei mir funzt es so :D


    MFG, Robdeflop®

  • ah oke so geht es :)


    und wie überprüfe ich jetzt ob ein 2ter eintrag im selben datensatz vorhanden ist?

  • na ich will überprüfen ob Eintrag1 und Eintrag2 vorhanden sind.


    wenn ich ja jetzt das neu format mache dann sucht er ja wieder alles ab. also muss das ja gleichzeit passiert. sprich er muss die bedigung Eintrag1=1 und Eintrag2=1 haben.


    MfG

  • Lol achso, dann machst du das einfach so:


    new var[70];
    format(var, sizeof(var), "SELECT * FROM `Tabellenname` WHERE `Eintrag1`='%s'",bla);
    samp_mysql_query(var);
    samp_mysql_store_result();


    if (samp_mysql_num_rows() != 0)
    {
    new var[70];
    format(var, sizeof(var), "SELECT * FROM `Tabellenname` WHERE `Eintrag2`='%s'",bla);
    samp_mysql_query(var);
    samp_mysql_store_result();


    if (samp_mysql_num_rows() != 0)
    {


    :D Ich hoff du meinst es so ^^


    MFG, Robdeflop®

  • ja ne. dann sucht er ja wieder den kompletten tabellen inhalt ab. Er soll aber schein ob in der zeile wo er das 1ste gefunden hat auhc das 2te ist. da bei mir offtmal das 1 und das 2 mehrmals vorkommen aber nur 1 mal zusammen in kombination.


    EDIT: So ich glaube ich hab den fehler xD


    ich habe die kompletten mysql sachen auskommentiert und der server ist trotzdem abgestürtz.


    nun habe ich nurnoch folgende zeilen:


    new Eintrag1Str[256];
    // new Eintrag2Int[256];


    GetServerVarAsString("Eintrag1", Eintrag1Str, sizeof(Eintrag1Str));
    printf("Eintrag1: %s",Eintrag1Str);
    // GetServerVarAsString("Eintrag2", Eintrag2Int, sizeof(Eintrag2Int));
    new Eintrag2Int= GetServerVarAsInt("Eintrag2");
    printf("Eintrag2: %s", Eintrag2Int);


    der Server stürtz nicht hab nur komischer weise steht in der log nur folgendes:


    Code
    [18:14:02] Eintrag1: test
    [18:14:02] Eintrag2: atest


    k.A. Warum das so ist :/

    4 Mal editiert, zuletzt von Mischi ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen