Nur ein Eintrag in der Datenbank

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
  • Guten Morgen,
    in meiner Datenbank wird nur ein "ATM" Gespeichert, hier ein Bild meiner Datenbank und die "mysql_log" spuckt mir dies aus:



    [09:40:21] [ERROR] mysql_format: invalid connection handle '0' (Script.p:886)
    [09:40:21] [ERROR] mysql_pquery: invalid connection handle '0' (Script.p:887)


    datenbank atm.PNG

  • @Renz Also, erstellen tut er nun alle so wie es soll.
    Aber mein MySQL Log wird nun hiermit voll Gespammt.



    Erstellen tue ich die hier:



    case DIALOG_ACREATE:
    {
    if(response)
    {
    switch(listitem)
    {
    case 0:
    {
    new query[256], Float:Pos[4];
    GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    GetPlayerFacingAngle(playerid, Pos[3]);
    for(new i = 0; i < MAX_ATMS; i++)
    {
    if(ATMInfo[i][bErstellt] == true)continue;
    ATMInfo[i][bErstellt] = true;
    ATMInfo[i][bX] = Pos[0];
    ATMInfo[i][bY] = Pos[1];
    ATMInfo[i][bZ] = Pos[2];
    ATMInfo[i][bA] = Pos[3];
    ATMInfo[i][bObject] = CreateDynamicObject(2942, Pos[0], Pos[1], Pos[2]-0.5, 0, 0, Pos[3]);
    mysql_format(Handle, query, 256, "INSERT INTO `atm` (`ID`, `X`, `Y`, `Z`, `A`) VALUES ('%i', '%f', '%f', '%f', '%f')", i, Pos[0], Pos[1], Pos[2], Pos[3]);
    mysql_pquery(Handle, query);
    printf("%s", query);
    return 1;
    }
    }
    }
    }
    }

  • @Renz Daran wird es kaum liegen wenn die Spieler zB alle Richtig erstellt werden.
    Aber hier ist die Verbindung zur MySQL Datenbank.


    Handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DATA);

  • Renz, das ist leider keine Zeilen Angabe, habe ich schon nach Geschaut.


    Ich weiß leider auch nicht wieso dieser Fehler kommt, dachte einer von euch kann mir dabei Helfen.


    Ich nutze MySQL R41 falls es Helfen sollte.


    MfG.


    //e
    Habe schon mal Herraus gefunden das es an der Lade Funktion liegt.



    [10:53:17] [plugins/mysql] cache_get_row_count: no active cache (Script.p:884)




    stock LoadATM()
    {
    new rows, query[128];
    cache_get_row_count(rows); //<- Laut der Log dieser Fehler
    for(new i = 0; i < MAX_ATMS; i++)
    {
    if(rows == 0)continue;
    mysql_format(Handle, query, 128, "SELECT * FROM `atm` WHERE `ID` = '%i'", i);
    mysql_pquery(Handle, query);


    cache_get_value_name_int(0, "ID", ATMInfo[i][bID]);
    cache_get_value_name_float(0, "X", ATMInfo[i][bX]);
    cache_get_value_name_float(0, "Y", ATMInfo[i][bY]);
    cache_get_value_name_float(0, "Z", ATMInfo[i][bZ]);
    cache_get_value_name_float(0, "A", ATMInfo[i][bA]);


    ATMInfo[i][bErstellt] = true;
    ATMInfo[i][bObject] = CreateDynamicObject(2942, ATMInfo[i][bX], ATMInfo[i][bY], ATMInfo[i][bZ]-0.5, 0, 0, ATMInfo[i][bA]);
    }
    return 1;
    }


    Einmal editiert, zuletzt von Kisa ()

  • Versuch es mal so:



    mysql_tquery(Handle, "SELECT * FROM `atm`", "LoadATM", "");
    forward LoadATM();
    public LoadATM()
    {
    new rows;
    cache_get_row_count(rows);
    for(new i = 0; i < rows; i++)
    {
    cache_get_value_name_int(0, "ID", ATMInfo[i][bID]);
    cache_get_value_name_float(0, "X", ATMInfo[i][bX]);
    cache_get_value_name_float(0, "Y", ATMInfo[i][bY]);
    cache_get_value_name_float(0, "Z", ATMInfo[i][bZ]);
    cache_get_value_name_float(0, "A", ATMInfo[i][bA]);
    ATMInfo[i][bErstellt] = true;
    ATMInfo[i][bObject] = CreateDynamicObject(2942, ATMInfo[i][bX], ATMInfo[i][bY], ATMInfo[i][bZ]-0.5, 0, 0, ATMInfo[i][bA]);
    }
    return 1;
    }


    Query, weißt du ja wohin, dort wo die jetzige ist. Das forward oben ins Script, oder so übern Public lassen.