[MySQL] Error (0): Failed to exeute query.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • [MySQL] Error (0): Failed to exeute query.

    Guten Abend,

    habe ein fehler leider in der mysql.log drin stehen wobei ich nicht wirklich grade weiss wieso der so vollgespammt wird in der .log.

    Hier:

    SQL-Abfrage

    1. [12:36:23] [MySQL] Error (0): Function: mysql_store_result called when no prior successful query executed. Unknown column 'id' in 'order clause'.
    2. [12:36:23] [MySQL] Error (0): Function: mysql_num_rows called when no result stored. Unknown column 'id' in 'order clause'.
    3. [12:36:23] [MySQL] Error (0): Failed to exeute query. Unknown column 'id' in 'order clause'.
    4. [12:36:23] [MySQL] Error (0): Function: mysql_store_result called when no prior successful query executed. Unknown column 'id' in 'order clause'.
    5. [12:36:23] [MySQL] Error (0): Function: mysql_fetch_field called when no result stored. Unknown column 'id' in 'order clause'.


    Ich weiss grade nicht genau wo ich die Tabelle "id" einfügen soll, kann mir jemand bitte helfen.


    MfG
    quelledave
  • quelledave schrieb:

    Ich habe das mit dem "print(f)" noch nie gemacht also habe auch leider nicht die kennisse dafür könntest du mir kurz dabei helfen hier mal die Datenbank im Anhang von mir.
    So läuft der Hase hier nicht.
    Man muss sich Dinge auch selbst erarbeiten. So lernt man nichts. Und hier sind User die lernen wollen, zumindest möchten wir hier nichts vorquatschen.
    Also bitte: wiki.sa-mp.com/wiki/Printf
  • So läuft der Hase hier nicht.

    Man muss sich Dinge auch selbst erarbeiten. So lernt man nichts. Und
    hier sind User die lernen wollen, zumindest möchten wir hier nichts
    vorquatschen.

    Also bitte: wiki.sa-mp.com/wiki/Printf
    Okay, ich kann verstehen wenn man nicht direkt alles von anderen gemacht bekommt oder so, aber du meinst ihr seid hier ein Forum wo geholfen wird.
    Also wenn man einfach was von print(f) funktion erzählt und nichtmal richtig erklärt wir der fehler endstehen kann, bzw. von wo der fehler ist also aus der Datenbank oder ausen Script.
    Dann verstehe ich auch nicht wie du behaupten kannst das hier ein Forum ist wo man zuverlässige hilfe bekommt.^^
    Also kannst du mir erklären, wie der Fehler entsteht und wo der verursacht wird?
    so wie ich es jetzt sehe ist das wegen SAMP oder?



    wenn Ja:

    machst du einfach im stock /public

    ein printf("Inhalt des Feldes `Schieß mich Tod`: %s",InhaltAusDerMySQLQuerys);

    schon fretig
    Wo meinst du das genau mit der funktion "printf("Inhalt des Feldes `Schieß mich Tod`: %s",InhaltAusDerMySQLQuerys);" im Script einfügen oder in die Datenbank ?
    Ich denke du meinst man sollte es ins Script rein hauen nur unter was soll ich es einfügen ? "OnPlayerConnect" oder "OnGameModeInit" ?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von quelledave ()

  • Ich glaube eher, dass du die Funktionen eher falsch benutzt.

    Im Log steht doch schon, du benutzt mysql_store_result(), wenn davor überhaupt kein Query war, was also dann wenig Sinn macht.

    Zudem versuchst du iwie auf eine Spalte zuzugreifen, die nicht in deiner Tabelle ist.



    LG
    Also ich benutze "mysql_store_result();" und davor steht "mysql_query(query);"
  • @L0g4n:
    Dort steht, dass mysql_store_result aufgerufen wird, obwohl vorher kein erfolgreicher Query ausgeführt wurde (was wiederum an der fehlenden Spalte liegt).
    Seine Frage geht daher ja auch in die Richtung, in welcher Tabelle die Spalte fehlt. :)

    Wie TutNichts schon angedeutet hat, musst du mal schauen, wann der Fehler auftritt und im Script an dieser Stelle nach dem Aufruf der mysql_query-Funktion suchen. Dort schaust du dann, ob nach einer id sortiert wird (ORDER BY `id`) und wenn ja, überprüfst du anschließend, ob die Spalte (id) in genau dieser Tabelle vorhanden ist.
    Wenn sie nicht vorhanden ist, hast du den Übeltäter und kannst die Spalte in eben jene Tabelle einfügen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Piranha () aus folgendem Grund: Korrektur

  • Dort steht, dass mysql_store_result aufgerufen wird, obwohl vorher kein erfolgreicher Query ausgeführt wurde (was wiederum an der fehlenden Spalte liegt).

    Seine Frage geht daher ja auch in die Richtung, in welcher Tabelle die Spalte fehlt. :)



    Wie TutNichts schon angedeutet hat, musst du mal schauen, wann der
    Fehler auftritt und im Script an dieser Stelle nach dem Aufruf der
    mysql_query-Funktion suchen. Dort schaust du dann, ob nach einer id
    sortiert wird (ORDER BY `id`) und wenn ja, überprüfst du anschließend,
    ob die Spalte (id) in genau dieser Tabelle vorhanden ist.

    Wenn sie nicht vorhanden ist, hast du den Übeltäter und kannst die Spalte in eben jene Tabelle einfügen.
    Es ist so heiss hier in NRW das ich vorhin schon Joggen war bisschen an der frischen luft und jetzt vor 2 Stunden schon an den fehler sitze und getestet habe wo die Tabelle fällt, ich erkenne nur das der fehler auftaucht wenn ich den Server betrette. Also kann jemand mir irgendwie anders weiter helfen?
  • Dann schau doch mal, wo unter OnPlayerConnect überall mysql_query ausgeführt wird.
    Also hier wird das nur 2 mal ausgeführt...

    [pwn] if(!IsPlayerNPC(playerid))
    {
    GetPlayerName(playerid, PlayerInfo[playerid][pIngameName],MAX_PLAYER_NAME);
    mysql_real_escape_string(PlayerInfo[playerid][pIngameName],PlayerInfo[playerid][pIngameName]);

    format(query, sizeof(query),"SELECT * FROM `accounts` WHERE `Name` = '%s'", PlayerInfo[playerid][pIngameName]);
    mysql_query(query);
    mysql_store_result();

    strmid(PlayerInfo[playerid][pKontack], mysql_GetStringByString("accounts","Kontackt","Name",PlayerInfo[playerid][pIngameName]), 0, 128, 255);
    PlayerInfo[playerid][pPasswordHashed] = mysql_GetIntByString("accounts", "PasswordHashed", "Name",PlayerInfo[playerid][pIngameName]);
    mysql_free_result();
    }[/pwn]

    und hier

    [pwn] if(IsPlayerNPC(playerid))
    {
    gPlayerLogged[playerid] = 1;
    SpawnPlayer(playerid);
    TogglePlayerControllable(playerid, 1);
    return 1;
    }
    else
    {
    GetPlayerIp(playerid,pIP[playerid],16);
    GetPlayerName(playerid, plname, sizeof(plname));
    format(query,sizeof(query),"SELECT * FROM `accounts` WHERE `Name` = '%s'",plname);
    mysql_query(query);
    mysql_store_result();
    if(!mysql_num_rows())
    {
    if(registrationsstatus == 0)
    {
    gPlayerAccount[playerid] = 0;
    gPlayerAccount[playerid] = 0;
    securitywert[playerid] = 0;
    return 1;
    }
    else
    {
    SendClientMessage(playerid, 0xFFD200FF, "Die Registration wurde vorübergehend abgeschaltet oder ist automatisch");
    SendClientMessage(playerid, 0xFFD200FF, "von 02:00 Uhr bis 09:00 Uhr abgeschaltet.");
    format(string, sizeof(string), "Bitte besuche unser Teamspeak(IP: %s) um mehr Infos zu bekommen.", tsip);
    SendClientMessage(playerid, 0xFFD200FF, string);
    SetTimerEx("kick",2500,0,"i",playerid);
    }
    return 1;
    }
    else
    {
    gPlayerAccount[playerid] = 1;
    securitywert[playerid] = 1;
    }
    mysql_free_result();
    }[/pwn]
  • Dann such mal stattdessen nach ORDER BY `id` mit STRG+F.
    Habe ich nun gemacht, hier sind mehrere sachen....

    [pwn] if(PlayerInfo[playerid][pAdmin] >= 1||PlayerInfo[playerid][pSupporter] >= 1)
    {
    if(!mysql_CheckAdminAccount(playerid))
    {
    format(query, sizeof(query), "INSERT INTO ticket_logs (Name) VALUES ('%s')", PlayerInfo[playerid][pIngameName]);
    mysql_query(query);
    }
    format(query,sizeof(query),"SELECT * FROM `ticket_logs` WHERE `Name` = '%s' ORDER BY `id` DESC LIMIT 1",PlayerInfo[playerid][pIngameName]);
    mysql_query(query);
    mysql_store_result();
    TicketLogInfo[playerid][Tickets_Angenommen] = mysql_GetIntByString("ticket_logs", "Tickets_Angenommen", "Name",PlayerInfo[playerid][pIngameName]);
    TicketLogInfo[playerid][Tickets_Geloescht] = mysql_GetIntByString("ticket_logs", "Tickets_Geloescht", "Name",PlayerInfo[playerid][pIngameName]);
    TicketLogInfo[playerid][Tickets_Zurueckgegeben] = mysql_GetIntByString("ticket_logs", "Tickets_Zurueckgegeben", "Name",PlayerInfo[playerid][pIngameName]);
    TicketLogInfo[playerid][Fragen_beantwortet] = mysql_GetIntByString("ticket_logs", "Fragen_beantwortet", "Name",PlayerInfo[playerid][pIngameName]);
    TicketLogInfo[playerid][Fragen_verworfen] = mysql_GetIntByString("ticket_logs", "Fragen_verworfen", "Name",PlayerInfo[playerid][pIngameName]);
    mysql_free_result();
    }[/pwn]

    [pwn] if(PlayerInfo[playerid][pAdmin] >= 1||PlayerInfo[playerid][pSupporter] >= 1)
    {
    if(!mysql_CheckAdminAccount(playerid))
    {
    format(query, sizeof(query), "INSERT INTO ticket_logs (Name) VALUES ('%s')", PlayerInfo[playerid][pIngameName]);
    mysql_query(query);
    }
    format(query,sizeof(query),"SELECT * FROM `ticket_logs` WHERE `Name` = '%s' ORDER BY `id` DESC LIMIT 1",PlayerInfo[playerid][pIngameName]);
    mysql_query(query);
    mysql_store_result();
    TicketLogInfo[playerid][Tickets_Angenommen] = mysql_GetIntByString("ticket_logs", "Tickets_Angenommen", "Name",PlayerInfo[playerid][pIngameName]);
    TicketLogInfo[playerid][Tickets_Geloescht] = mysql_GetIntByString("ticket_logs", "Tickets_Geloescht", "Name",PlayerInfo[playerid][pIngameName]);
    TicketLogInfo[playerid][Tickets_Zurueckgegeben] = mysql_GetIntByString("ticket_logs", "Tickets_Zurueckgegeben", "Name",PlayerInfo[playerid][pIngameName]);
    TicketLogInfo[playerid][Fragen_beantwortet] = mysql_GetIntByString("ticket_logs", "Fragen_beantwortet", "Name",PlayerInfo[playerid][pIngameName]);
    TicketLogInfo[playerid][Fragen_verworfen] = mysql_GetIntByString("ticket_logs", "Fragen_verworfen", "Name",PlayerInfo[playerid][pIngameName]);
    mysql_free_result();
    }[/pwn]

    [pwn]forward CheckAllHouses(playerid,Timecode,MindestZeit);
    public CheckAllHouses(playerid,Timecode,MindestZeit)
    {
    new loop=1,string[500],countban=0,countzeit=0,countlost=0;
    while(loop < sizeof(HouseInfo))
    {
    if(strcmp(HouseInfo[loop][hOwner],"The State",true))
    {
    format(query,sizeof(query),"SELECT * FROM `accounts` WHERE `Name` = '%s' ORDER BY `id` DESC LIMIT 1",HouseInfo[loop][hOwner]);
    mysql_query(query);
    mysql_store_result();
    if(mysql_num_rows() != 0)
    {
    new banned = mysql_GetIntByString("accounts", "Gebannt", "Name",HouseInfo[loop][hOwner]);
    if(banned)
    {
    format(string,sizeof string,"Hausnummer %d | Owner %s - Spieler gebannt",loop,HouseInfo[loop][hOwner]);
    countban++;
    HouseClearInfo(string);
    }
    else
    {
    if(GetUserOnlineTime(HouseInfo[loop][hOwner],Timecode) < MindestZeit)
    {
    format(string,sizeof string,"Hausnummer %d | Owner %s - Erfüllt die angegebene Mindest-Onlinezeit nicht (Abmeldung überprüfen)",loop,HouseInfo[loop][hOwner]);
    countzeit++;
    HouseClearInfo(string);
    }
    }
    }
    else
    {
    format(string,sizeof string,"Hausnummer %d | Owner %s - Spieler nicht in der Datenbank",loop,HouseInfo[loop][hOwner]);
    countlost++;
    HouseClearInfo(string);
    }
    }
    loop++;
    }
    new countgesamt = countban+countlost+countzeit;
    format(string,sizeof string,"%d Häuser wurden makiert, da der Besitzer gebannt ist.",countban);
    HouseClearInfo2(string);
    format(string,sizeof string,"%d Häuser wurden makiert, da der Besitzer in der Datenbank nicht vorhanden ist.",countlost);
    HouseClearInfo(string);
    format(string,sizeof string,"%d Häuser wurden makiert, da der Besitzer die angegebene Mindesonlinezeit nicht erfüllt.",countzeit);
    HouseClearInfo(string);
    format(string,sizeof string,"Insgesamt wurden %d Häuser markiert.",countgesamt);
    HouseClearInfo(string);
    return 1;
    }
    [/pwn]

    Und halt bei mehreren befehlen die ich aber nicht genutzt habe wo ich aufen Test Server war.




  • Jetzt musst du nur noch schauen, in welcher Tabelle (ticket_logs oder accounts) die Spalte id fehlt und hinzufügen.

    Jetzt habe ich glaube ich den id fehler gefixxt nur jetzt habe ich den problem noch wenn ich Connecte kommt der jedesmal.

    SQL-Abfrage

    1. [18:41:41] [join] quelledave has joined the server (0:***.****:****:***)
    2. [MySQL] Error (0): Function: mysql_fetch_field failed, no field data.

    Weiss nicht was da nun vor ein problem ist?

    Kann mir jemand nun erklären, wie ich den Fehler beheben kann, und ist der Fehler so schwer das Er irgendwelche schwigkeiten verursachen kann ?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von quelledave ()