Tabellen werden nicht hunzugefügt

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 zsm


    Ich habe nun eingebaut dass beim Serverstart überprüft wird ob alle Tabellen da sind



    Wenn nicht, so sollen diese erstellt werden


    Nun die werden nicht erstellt
    Dann habe ich es mir printen lassen und sehe nun, die Prints sind leer



    vlt könnt ihr mir helfen Jeffry



    stock CreateTables()
    {
    new query[500];
    print("CreateTables aufgerufen");
    //USer Tabelle
    strcat(query,"CREATE TABLE IF NOT EXISTS `user` (`ID` int(2) NOT NULL AUTO_INCREMENT PRIMARY KEY,`Name` varchar(24) NOT NULL,`Passwort` varchar(34) NOT NULL,`level` int(4) NOT NULL,`Money` int(4) NOT NULL,");
    strcat(query,"´alevel´ int(4) NOT NULL,´fraktion´ int(4) NOT NULL,´rang´ int(4) NOT NULL,´spawnchange´ int(4) NOT NULL,´PaydayTime´ int(4) NOT NULL,´rollerschein´ varchar(20) NOT NULL,´autoschein´ varchar(20) NOT NULL,´premiumSys´ int(4) NOT NULL,´premiumzeitl´ int(4) NOT NULL,´premiumzeits´ int(4) NOT NULL,´last_login´ varchar(30) NOT NULL,");
    strcat(query,"´leader´ int(4) NOT NULL, ´wanteds´ int(4) NOT NULL, ´kontogeld´ int(4) NOT NULL, ´treuepunkte´ int(4) NOT NULL, ´skinid´ int(4) NOT NULL, ´geschlecht´ int(4) NOT NULL, ´alter´ int(4) NOT NULL, PRIMARY KEY (`id`))");
    //´´ int(4) NOT NULL
    mysql_function_query(dbhandle,query,false,"","");
    strdel(query,0,sizeof(query));

    printf("[DEBUG] Query = %s",query);
    //Tankstellen Tabelle
    strcat(query,"CREATE TABLE IF NOT EXISTS `tankstellen` (`ID` int(2) NOT NULL AUTO_INCREMENT PRIMARY KEY,´besitzer´ varchar(32) NOT NULL,´x´ float(5) NOT NULL,´y´ float(5) NOT NULL,´z´ float(5) NOT NULL,´rad´ float(5) NOT NULL,´cost´ int(4) NOT NULL, PRIMARY KEY (`id`))");
    mysql_function_query(dbhandle,query,false,"","");
    strdel(query,0,sizeof(query));
    printf("[DEBUG] Query = %s",query);
    return 1;
    }

  • strdel(query,0,sizeof(query));

    printf("[DEBUG] Query = %s",query);


    Diese Zeilen bitte miteinander tauschen. Das Selbe auch ganz unten.


    Du löschst alles aus der Variable "query", bevor du sie printen lässt. Dass sie dann leer ist, ist kein Wunder. ^^
    Poste den Print danach bitte, denn dann wird sicher etwas drinstehen.


    Ach btw: Wenn du schon Jeffry ansprechen möchtest, dann auch richtig. ^^ Nach dem Namen kommt immer ein Doppelpunkt, ansonsten funktioniert das nicht.

  • Wird die Tabelle nicht erstellt oder ist der Query beim Print lediglich leer?



    beides


    sie bleibt leer und es wird keine erstellt



    das hier steht in der mysql Log


    Spoiler anzeigen
    [14:54:28] [ERROR] mysql_tquery - invalid connection handle (id: 0)
    [14:54:28] [ERROR] mysql_tquery - invalid connection handle (id: 0)
    [14:54:28] [ERROR] mysql_tquery - invalid connection handle (id: 0)
    [14:54:28] [ERROR] mysql_tquery - invalid connection handle (id: 0)
    [14:54:28] [ERROR] CMySQLQuery::Execute[OnHausesLoad] - (error #1146) Table 'jannis.haus' doesn't exist
    [14:54:28] [ERROR] CMySQLQuery::Execute[loadfrakmoney] - (error #1146) Table 'jannis.frakmoney' doesn't exist


    und das in der server log


    Spoiler anzeigen
    [14:54:28] CreateTables aufgerufen
    [14:54:28] [DEBUG] Query = CREATE TABLE IF NOT EXISTS `user` (`ID` int(2) NOT NULL AUTO_INCREMENT PRIMARY KEY,`Name` varchar(24) NOT NULL,`Passwort` varchar(34) NOT NULL,`level` int(4) NOT NULL,`Money` int(4) NOT NULL,�alevel� int(4) NOT NULL,�fraktion� int(4) NOT NULL,�rang� int(4) NOT NULL,�spawnchange� int(4) NOT NULL,�PaydayTime� int(4) NOT NULL,�rollerschein� varchar(20) NOT NULL,�autoschein� varchar(20) NOT NULL,�premiumSys� int(4) NOT NULL,�premiumzeitl� int(4) NOT NULL,�premiumzeits� int(4) NOT NULL,�last_login�
    [14:54:28] [DEBUG] Query = CREATE TABLE IF NOT EXISTS `tankstellen` (`ID` int(2) NOT NULL AUTO_INCREMENT PRIMARY KEY,�besitzer� varchar(32) NOT NULL,�x� float(5) NOT NULL,�y� float(5) NOT NULL,�z� float(5) NOT NULL,�rad� float(5) NOT NULL,�cost� int(4) NOT NULL, PRIMARY KEY (`id`))


    Jeffry und @PermaneT @Jack_Bauer

  • ja, habe das jetzt mal nach unten gesetzt bei OngamemodeInit


    wird aber immernoch nicht erstellt Jeffry



    dafür aber nun folgende Fehler in der LOG


    Spoiler anzeigen
    [17:05:36] [ERROR] mysql_tquery - invalid connection handle (id: 0)
    [17:05:36] [ERROR] mysql_tquery - invalid connection handle (id: 0)
    [17:05:36] [ERROR] mysql_tquery - invalid connection handle (id: 0)
    [17:05:36] [ERROR] mysql_tquery - invalid connection handle (id: 0)
    [17:05:36] [ERROR] CMySQLQuery::Execute[loadfrakmoney] - (error #1146) Table 'jannis.frakmoney' doesn't exist
    [17:05:36] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '´alevel´ int(4) NOT NULL,´fraktion´ int(4) NOT NULL,´rang´ int(4) NOT NULL' at line 1
    [17:05:36] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '´besitzer´ varchar(32) NOT NULL,´x´ float(5) NOT NULL,´y´ float(5) NOT NUL' at line 1

  • Du hast die falschen Anführungszeichen genommen.


    STRG+H => ´ => ` => Alle ersetzen =>
    stock CreateTables()
    {
    new query[500];
    print("CreateTables aufgerufen");
    //USer Tabelle
    strcat(query,"CREATE TABLE IF NOT EXISTS `user` (`ID` int(2) NOT NULL AUTO_INCREMENT PRIMARY KEY,`Name` varchar(24) NOT NULL,`Passwort` varchar(34) NOT NULL,`level` int(4) NOT NULL,`Money` int(4) NOT NULL,");
    strcat(query,"`alevel` int(4) NOT NULL,`fraktion` int(4) NOT NULL,`rang` int(4) NOT NULL,`spawnchange` int(4) NOT NULL,`PaydayTime` int(4) NOT NULL,`rollerschein` varchar(20) NOT NULL,`autoschein` varchar(20) NOT NULL,`premiumSys` int(4) NOT NULL,`premiumzeitl` int(4) NOT NULL,`premiumzeits` int(4) NOT NULL,`last_login` varchar(30) NOT NULL,");
    strcat(query,"`leader` int(4) NOT NULL, `wanteds` int(4) NOT NULL, `kontogeld` int(4) NOT NULL, `treuepunkte` int(4) NOT NULL, `skinid` int(4) NOT NULL, `geschlecht` int(4) NOT NULL, `alter` int(4) NOT NULL, PRIMARY KEY (`id`))");
    //`` int(4) NOT NULL
    mysql_function_query(dbhandle,query,false,"","");
    strdel(query,0,sizeof(query));


    printf("[DEBUG] Query = %s",query);
    //Tankstellen Tabelle
    strcat(query,"CREATE TABLE IF NOT EXISTS `tankstellen` (`ID` int(2) NOT NULL AUTO_INCREMENT PRIMARY KEY,`besitzer` varchar(32) NOT NULL,`x` float(5) NOT NULL,`y` float(5) NOT NULL,`z` float(5) NOT NULL,`rad` float(5) NOT NULL,`cost` int(4) NOT NULL, PRIMARY KEY (`id`))");
    mysql_function_query(dbhandle,query,false,"","");
    strdel(query,0,sizeof(query));
    printf("[DEBUG] Query = %s",query);
    return 1;
    }

  • Jeffry



    habs nun aktualisiert



    folgende fehler noch


    [17:13:31] [ERROR] mysql_tquery - invalid connection handle (id: 0)
    [17:13:31] [ERROR] mysql_tquery - invalid connection handle (id: 0)
    [17:13:31] [ERROR] mysql_tquery - invalid connection handle (id: 0)
    [17:13:31] [ERROR] mysql_tquery - invalid connection handle (id: 0)
    [17:13:31] [ERROR] CMySQLQuery::Execute[loadfrakmoney] - (error #1146) Table 'jannis.frakmoney' doesn't exist
    [17:13:31] [ERROR] CMySQLQuery::Execute[] - (error #1064) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
    [17:13:31] [ERROR] CMySQLQuery::Execute[] - (error #1068) Multiple primary key defined




    Tabelle wird noch nicht erstellt

  • Da geht es jetzt aber um die frakmoney Tabelle, die sehe ich nicht in dem Code. Kannst du den entsprechenden Code posten?
    Außerdem scheint auch der vor dem Verbindungsaufbau zu stehen.


    Und erhöhe die Größe des Querys, das ist zu wenig:
    new query[500];
    zu:
    new query[1500];

  • Jeffry


    das sieht jetzt so aus


    public OnGameModeInit()
    {
    //MYSQL //HostIP der DB,Username.DBname,passwort
    dbhandle = mysql_connect(db_host,db_user,db_db,db_pass);
    //mysql_debug(1);
    //if(mysql_errno(dbhandle)!=0) return print("DB Fehler");
    CreateTables();


    ...



    format(query,sizeof(query), " SELECT * FROM frakmoney");
    mysql_function_query(dbhandle,query,true,"loadfrakmoney","");
    was benötigst du denn genau bei frakmoney


    query ist erhöht :)

  • Jeffry


    also frakmoney wird hinzugefügt aber user nicht :/


    das ist aktuell im Log


    [17:32:49] [ERROR] CMySQLQuery::Execute[] - (error #1068) Multiple primary key defined
    [17:32:49] [ERROR] CMySQLQuery::Execute[] - (error #1068) Multiple primary key defined
    [17:32:49] [ERROR] CMySQLQuery::Execute[] - (error #1068) Multiple primary key defined
    [17:32:49] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('0')
    [17:32:49] [ERROR] cache_get_field_content_int - invalid datatype
    [17:32:49] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('1')
    [17:32:49] [ERROR] CMySQLQuery::Execute[] - (error #1068) Multiple primary key defined
    [17:32:49] [ERROR] cache_get_field_content_int - invalid datatype
    [17:32:49] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('2')
    [17:32:49] [ERROR] cache_get_field_content_int - invalid datatype
    [17:32:49] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('3')
    [17:32:49] [ERROR] cache_get_field_content_int - invalid datatype
    [17:32:49] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('4')
    [17:32:49] [ERROR] cache_get_field_content_int - invalid datatype
    [17:32:49] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('5')
    [17:32:49] [ERROR] cache_get_field_content_int - invalid datatype
    [17:32:49] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('6')
    [17:32:49] [ERROR] cache_get_field_content_int - invalid datatype
    [17:32:49] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('7')
    [17:32:49] [ERROR] cache_get_field_content_int - invalid datatype
    [17:32:49] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('8')
    [17:32:49] [ERROR] cache_get_field_content_int - invalid datatype
    [17:32:49] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('9')
    [17:32:49] [ERROR] cache_get_field_content_int - invalid datatype
    [17:32:49] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('10')
    [17:32:49] [ERROR] cache_get_field_content_int - invalid datatype
    [17:32:49] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('11')
    [17:32:49] [ERROR] cache_get_field_content_int - invalid datatype

  • immernoch keine table


    aber der error ist weg


    bleibt noch das hier Jeffry


    [17:39:43] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('0')
    [17:39:43] [ERROR] cache_get_field_content_int - invalid datatype
    [17:39:43] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('1')
    [17:39:43] [ERROR] cache_get_field_content_int - invalid datatype
    [17:39:43] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('2')
    [17:39:43] [ERROR] cache_get_field_content_int - invalid datatype
    [17:39:43] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('3')
    [17:39:43] [ERROR] cache_get_field_content_int - invalid datatype
    [17:39:43] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('4')
    [17:39:43] [ERROR] cache_get_field_content_int - invalid datatype
    [17:39:43] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('5')
    [17:39:43] [ERROR] cache_get_field_content_int - invalid datatype
    [17:39:43] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('6')
    [17:39:43] [ERROR] cache_get_field_content_int - invalid datatype
    [17:39:43] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('7')
    [17:39:43] [ERROR] cache_get_field_content_int - invalid datatype
    [17:39:43] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('8')
    [17:39:43] [ERROR] cache_get_field_content_int - invalid datatype
    [17:39:43] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('9')
    [17:39:43] [ERROR] cache_get_field_content_int - invalid datatype
    [17:39:43] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('10')
    [17:39:43] [ERROR] cache_get_field_content_int - invalid datatype
    [17:39:43] [ERROR] CMySQLResult::GetRowDataByName() - invalid row index ('11')
    [17:39:43] [ERROR] cache_get_field_content_int - invalid datatype

  • Also wenn der Error weg ist muss es klappen. Ich habe es eben mit der tankstellen Tabelle ausprobiert, das hat funktioniert.
    Hast du die Ansicht mal aktualisiert? Es sollte klappen.



    Zwecks diesen Errors:
    Die werden durch cache_get_field_content_int erzeugt, poste da bitte den entsprechenden Code, der dazu gehört.

  • es ist drin mit user



    hier die cache_get_field_content int sachen


    bsp user laden

    Spoiler anzeigen

    public OnPasswordResponse(playerid)
    {
    new num_fields,num_rows,string[256],stringend[1024];
    cache_get_data(num_rows,num_fields,dbhandle);
    if(num_rows==1)
    {
    //passwort richtig
    sInfo[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,CLGREEN,"Du hast dich erfolgreich eingeloggt");
    sInfo[playerid][level] = cache_get_field_content_int(0,"level",dbhandle);
    SetPlayerScore(playerid,sInfo[playerid][level]);

    sInfo[playerid][alter] = cache_get_field_content_int(0,"alter",dbhandle);
    SetPlayerMoney(playerid,cache_get_field_content_int(0,"Money",dbhandle));

    sInfo[playerid][alevel] = cache_get_field_content_int(0,"alevel",dbhandle);
    sInfo[playerid][rang] = cache_get_field_content_int(0,"rang",dbhandle) ;
    sInfo[playerid][fraktion] = cache_get_field_content_int(0,"fraktion",dbhandle) ;
    sInfo [playerid ][geschlecht] = cache_get_field_content_int(0,"geschlecht",dbhandle);
    sInfo[playerid][PaydayTime] = cache_get_field_content_int(0,"PaydayTime",dbhandle);
    sInfo[playerid][db_id] = cache_get_field_content_int(0,"id",dbhandle);
    sInfo[playerid][spawnchange] = cache_get_field_content_int(0,"spawnchange",dbhandle);
    //Boools auslesen
    sInfo[playerid][autoschein] = !!cache_get_field_content_int(0,"autoschein",dbhandle);
    sInfo[playerid][rollerschein] = !! cache_get_field_content_int(0,"rollerschein",dbhandle);
    sInfo[playerid][motorradschein] = !! cache_get_field_content_int(0,"motorradschein",dbhandle);
    sInfo[playerid][bootsschein] = !! cache_get_field_content_int(0,"bootsschein",dbhandle);
    sInfo[playerid][flugschein] = !! cache_get_field_content_int(0,"flugschein",dbhandle);
    sInfo[playerid][premiumzeit] = cache_get_field_content_int(0, "premiumzeitl", dbhandle);
    sInfo[playerid][premiumzeit] = cache_get_field_content_int(0, "premiumzeits", dbhandle);
    cache_get_field_content(0,"email",sInfo[playerid][e_mail],dbhandle,MAX_PLAYER_NAME);
    sInfo[playerid][l_login] = cache_get_field_content_int(0, "last_login", dbhandle);
    sInfo[playerid][leader] = cache_get_field_content_int(0, "leader", dbhandle);
    sInfo[playerid][wanteds] = cache_get_field_content_int(0,"wanteds",dbhandle);
    SetPlayerWantedLevel(playerid,sInfo[playerid][wanteds]);
    //AUS TABELLE USER_2

    sInfo[playerid][tode] = cache_get_field_content_int(0,"deaths",dbhandle);
    sInfo[playerid][kills] = cache_get_field_content_int(0,"kills",dbhandle);
    sInfo[playerid][warns] = cache_get_field_content_int(0,"u_warns",dbhandle);
    sInfo[playerid][karte] = cache_get_field_content_int(0,"Kontogeld",dbhandle);
    frakPass[playerid][f_warns] = cache_get_field_content_int(0,"f_warns",dbhandle);
    frakPass[playerid][frakmoneyin] = cache_get_field_content_int(0,"fmoneyin",dbhandle);
    frakPass[playerid][frakmoneyout] = cache_get_field_content_int(0,"fmoneyout",dbhandle);
    sInfo[playerid][banned] = cache_get_field_content_int(0,"bannstatus",dbhandle);
    sInfo[playerid][treue] = cache_get_field_content_int(0,"Treuepunkte",dbhandle);
    sInfo[playerid][skin] = cache_get_field_content_int(0,"skinid",dbhandle);
    sInfo[playerid][job_id] = cache_get_field_content_int(0,"Job",dbhandle);