Name geht nicht richtig aus der Datenbank hervor.

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
  • Hallo liebe Freunde.
    Ich habe ein Problem mit einen kleinen MySQL R5-Systems. Undzwar habe ich ein Enum erstellt, mit der Variable pName, nur leider klappt das nicht so ganz, wie ich gedacht und es mir vorgestellt habe. Vielleicht könnt ihr mir ja dabei helfen. In diesem Moment habe ich das so.


    Der PWN-Code
    enum SInfo
    {
    pName[MAX_PLAYER_NAME]
    }

    Und hier die Anwendung beim Laden:

    mysql_fetch_field("Name",data,mysql_load);
    strmid(SpielerInfo[playerid][pName],data,0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);


    Bild von der Datenbank, vielleicht ist da ja was falsch, findet ihr im Anhang.


    --------------------------------------------------------------------------------------------------------------------------------------------


    Was läuft falsch ?
    Wenn ich die Variable abfrage, dann kommt es auch manchmal vor, dass ich einen falschen Namen habe, zb. der Name von meinen kollegen,
    ich habe dazu einfach ein string formatiert, der diese Abfrage abfragt, dann steht da meist in der Abfrage ein anderer Name.
    Zb. "Du heißt W4yN3" und nicht Dr.Brummer, also läuft da irgendwas falsch.

  • Poste bitte das query welches du vor mysql_fetch_field abschickst.
    Gut wäre es wenn du auch gleich noch den Debug Modus an machst und den Log postest.


    In der SQL-Log ist nichts zu finden.


    PHP
    [code=php]

    [/code]


    Ich suche (Beta) Server-Tester für meinen Server.
    Bei Intresse bitte bei mir per PN melden.

  • Das ist nicht der Teil des Query's, das ist der Teil danach.
    Poste den Teil, der "OnMysqlQuery" aufruft.


    Zwecks des Logs:
    Schreibe bei OnGameModeInit mysql_log(LOG_ALL); bzw. mysql_debug(1); hin, je nach dem welches Plugin du hast.

  • Hallo Jeffry,
    Hier bitte, ich habe da was gefunden :)


    Anmeldenpublic, wenn das Passwort richtig eingegeben wurde:
    public Anmelden(playerid,pw[])
    {
    printf("Anmelden für %s gestartet.",SpielerName(playerid));
    mysql_real_escape_string(pw,pw);
    format(query,sizeof(query),"SELECT * FROM user WHERE Name='%s' AND Passwort='%s'",SpielerName(playerid),pw);
    mysql_query(query,777,playerid,mysql_load);
    return 1;
    }


    mysql_query(query,777,playerid,mysql_load);

    Abfrage 1, da wird das Ausgeführt.

    case 777://public anmelden
    {
    new playerid=spareid;
    mysql_store_result(mysql_load);
    if(mysql_result_stored(mysql_load))
    {
    if(mysql_num_rows(mysql_load)==0)
    {
    SpielerInfo[playerid][Eingeloggt] = 0;
    PasswortFalsch(playerid);
    mysql_free_result(mysql_load);
    return 1;
    }
    else
    {
    mysql_free_result(mysql_load);
    format(query,sizeof(query),"SELECT * FROM user WHERE Name='%s'",SpielerName(playerid));
    mysql_query(query,1777,playerid,mysql_load);
    return 1;
    }
    }
    owner("Bei 777 wurde kein Result gestord.");
    return 1;
    }


    Und der 1777 habe ich oben gezeigt, wenn alles geladen wurde.
    Und die MySQL log, sagt dieses, hervor bevor der Server wegen diesem Problem abschmierte.
    Zum Glück war der leibe Herr Sunshine da :D
    [Tue Aug 26 02:10:29 2014] -------------------------
    [Tue Aug 26 02:10:29 2014] Logging Started
    [Tue Aug 26 02:10:29 2014] -------------------------
    [Tue Aug 26 02:10:29 2014] Function: mysql_init executed with result: "2".
    [Tue Aug 26 02:10:29 2014] Connected (0) to samp4337 @ Localhost via UNIX socket.
    [Tue Aug 26 02:10:29 2014] MySQL Server Version 5.1.73-1.
    [Tue Aug 26 02:10:29 2014] Connected (1) to samp4337 @ Localhost via UNIX socket.
    [Tue Aug 26 02:10:29 2014] MySQL Server Version 5.1.73-1.
    [Tue Aug 26 02:10:29 2014] Connected (2) to samp4337 @ Localhost via UNIX socket.
    [Tue Aug 26 02:10:29 2014] MySQL Server Version 5.1.73-1.
    [Tue Aug 26 02:10:29 2014] Connected (3) to samp4337 @ Localhost via UNIX socket.
    [Tue Aug 26 02:10:29 2014] MySQL Server Version 5.1.73-1.
    [Tue Aug 26 02:10:29 2014] Function: mysql_query executed: "UPDATE user SET id='1' WHERE id='1'" with result: "0".
    [Tue Aug 26 02:16:05 2014] Function: mysql_query (threaded) executed: "SELECT * FROM autos WHERE besitzer='Sunshine' AND laden='1'" with result: "0".
    [Tue Aug 26 02:16:05 2014] Function: mysql_query executed: "SELECT * FROM autos WHERE besitzer='Sunshine' AND laden='1'" with result: "0".
    [Tue Aug 26 02:16:05 2014] Function: mysql_store_result executed with result: "1"
    [Tue Aug 26 02:16:05 2014] Function: mysql_free_result executed.
    [Tue Aug 26 02:16:05 2014] Callback: OnMysqlQuery(1234, 2, 2) called.
    [Tue Aug 26 02:16:29 2014] Error (1): Could not execute query. Table 'samp4337_datenbanksql.wanted' doesn't exist.
    [Tue Aug 26 14:18:52 2014] Function: mysql_query (threaded) executed: "SELECT * FROM autos WHERE besitzer='Sunshine' AND laden='1'" with result: "0".
    [Tue Aug 26 14:18:52 2014] Function: mysql_query executed: "SELECT * FROM autos WHERE besitzer='Sunshine' AND laden='1'" with result: "0".
    [Tue Aug 26 14:18:52 2014] Function: mysql_store_result executed with result: "1"
    [Tue Aug 26 14:18:52 2014] Function: mysql_free_result executed.
    [Tue Aug 26 14:18:52 2014] Callback: OnMysqlQuery(1234, 2, 2) called.

    Ich suche (Beta) Server-Tester für meinen Server.
    Bei Intresse bitte bei mir per PN melden.

  • Den Log den du da gepostet hast, der gehört aber nicht zum Login. Es wäre gut, wenn du den Log posten kannst, der kommt wenn du dich einloggst.


    Außerdem stimmt in dem Teil den du gepostet hast auch was nicht:

    Zitat

    [Tue Aug 26 02:16:29 2014] Error (1): Could not execute query. Table 'samp4337_datenbanksql.wanted' doesn't exist.

  • Den Log den du da gepostet hast, der gehört aber nicht zum Login. Es wäre gut, wenn du den Log posten kannst, der kommt wenn du dich einloggst.


    Außerdem stimmt in dem Teil den du gepostet hast auch was nicht:


    Was soll das heißen, da stimmt was nicht ? Vom Login ist nichts zu finden, das ist alles was in der MySQL-Log zu finden war. Sonst überhaupt gar nichts mehr. Was kann ich da jetzt machen ?

    Ich suche (Beta) Server-Tester für meinen Server.
    Bei Intresse bitte bei mir per PN melden.

  • Der Error sagt, dass die Tabelle nicht existiert. Du rufst bei den Autos irgend eine Tabelle auf die es nicht gibt.


    Wegen dem Login:
    Es muss doch mindestens das hier geprintet werden, wenn du dich einloggst.
    printf("Anmelden für %s gestartet.",SpielerName(playerid));


    Schalte den mysql_log so ein, dass alles geloggt wird.

  • Der Error sagt, dass die Tabelle nicht existiert. Du rufst bei den Autos irgend eine Tabelle auf die es nicht gibt.


    Wegen dem Login:
    Es muss doch mindestens das hier geprintet werden, wenn du dich einloggst.
    printf("Anmelden für %s gestartet.",SpielerName(playerid));


    Schalte den mysql_log so ein, dass alles geloggt wird.


    Das wird aber allerdings nicht in die MySQL-Log geprintet, sondern in die Server-Log.
    Es wird ja alles richtig geladen, daher bilde ich mir ein das da auch kein Schwerwiegender Fehler vorliegt.
    Ich kann dir die Serverlog auchmal geben, falls bedarf besteht.

    Ich suche (Beta) Server-Tester für meinen Server.
    Bei Intresse bitte bei mir per PN melden.

  • Das denke ich auch. Deshalb würde ich gerne den gesamten detaillierten Log sehen wollen.
    Bei den MySQL Plugins gibt es die Möglichkeit alles (wirklich alles) loggen zu lassen, mach das bitte.
    Falls du nicht weißt wie: Welches Plugin verwendest du denn? (steht beim Server Start im Server Log).

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ich suche (Beta) Server-Tester für meinen Server.
    Bei Intresse bitte bei mir per PN melden.