Häuser werden nicht richtig in der MySQL gesetzt

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
  • Tag leute,
    hab ein Problem:


    Bei meinem (selfmade) Haussystem das ich nun auf MySQL umschreiben möchte gibt es einen Fehler.
    Es wird nur die ID "0" in die Datenbank eingetragen.


    Code:
    new fhaus[128];
    for(new i = 0;i<sizeof(haussys);i++)
    {
    format(fhaus,sizeof fhaus,"%d",i);
    if(mysql_CheckHouse(fhaus) != 1)
    {
    mysql_SetString("houses", "owner", haussys[i][owner], "id", fhaus);
    mysql_SetInt("houses", "id", i, "id", fhaus);
    mysql_SetInt("houses", "interior", haussys[i][interi], "id", fhaus);
    mysql_SetInt("houses", "virtualworld", haussys[i][world], "id", fhaus);
    //.....
    }
    else
    {
    haussys[i][interi] = mysql_GetInt("houses", "interior", "id", fhaus);
    haussys[i][world] = mysql_GetInt("houses", "virtualworld", "id", fhaus);
    strmid(haussys[i][owner],mysql_GetString("houses", "owner", "id", fhaus),0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
    //.....
    }
    }


    Hoffe ihr könnt mir helfen,
    MfG Firer


    //EDIT:
    Ausserdem wird das Haus immer wieder überschrieben.
    Hier mal mein "mysql_CheckHouse" Code:
    stock mysql_CheckHouse(sqlname[])
    {
    new query[128], escstr[MAX_PLAYER_NAME];
    mysql_real_escape_string(sqlname, escstr);
    format(query, sizeof(query), "SELECT id FROM houses WHERE LOWER(owner) = LOWER('%s') LIMIT 1", escstr);
    mysql_query(query);
    mysql_store_result();
    if (mysql_num_rows()==0)return 0;
    else
    {
    new strid[32];
    new intid;
    mysql_fetch_row(strid);
    intid = strval(strid);
    return intid;
    }
    }
    //EDIT 2: Code verbessert

    2 Mal editiert, zuletzt von Firerfan ()

  • Ich versteh den Code nicht.


    fhaus ist ein String der i als Zahl beinhält? Wozu? Und warum versucht du dann mysql_setint mit einem String als Wert zu verwenden?

    GameMode / Filterscript / Plugin Development via
    - PAWN / C/C++
    - Database (mySQL) & Filebased - Systems


    Webdevelopment / Interfaces Webapplications - SA:MP Server via
    - HTML & CSS
    - PHP, JavaScript, Ajax

  • Ich versteh den Code nicht.


    fhaus ist ein String der i als Zahl beinhält? Wozu? Und warum versucht du dann mysql_setint mit einem String als Wert zu verwenden?

    Weil mein stock nur mit nem String-Wert funktioniert.
    Keine lusst das umzuschreiben.


    Hatte das ausserdem schonmal mit nem int wert gemacht, hat allerdings auch nicht funktioniert



    //EDIT: Hat echt NIEMAND ne lösung?

    2 Mal editiert, zuletzt von Firerfan ()