MySQL kleine Frage

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,


    ich habe mein User- und MySQLsystem nach dem von maddin gemacht. Nun möchte ich einen String aus einer Tabelle auslesen, in der zwei spalten einen bestimmten Wert haben sollen. Wie mach ich das? Mein stock zum Auslesen sieht so aus:
    stock mysql_GetInt(Table[], Field[], Where[], Is[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
    mysql_query(query);
    mysql_store_result();
    new sqlint = mysql_fetch_int();
    mysql_free_result();
    return sqlint;
    }


    Danke im Vorraus für die Hilfe

  • Sowas?


    stock mysql_GetInt(Table[], Field[], Where[], Is[], Where2[], Is2[])
    {
    new query[128];
    mysql_real_escape_string(Table, Table);
    mysql_real_escape_string(Field, Field);
    mysql_real_escape_string(Where, Where);
    mysql_real_escape_string(Is, Is);
    mysql_real_escape_string(Where2, Where2);
    mysql_real_escape_string(Is2, Is2);
    format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s' AND `%s` = '%s'", Field, Table, Where, Is, Where2, Is2);
    mysql_query(query);
    mysql_store_result();
    new sqlint = mysql_fetch_int();
    mysql_free_result();
    return sqlint;
    }


  • Ja Danke. Ich habe mit den MySQL Befehlen selbst noch nicht viel gemacht.


    Neues Problem:
    Ist zwar nur ein Warning aber ich möchte es weg haben:

    Code
    D:\Samp Server\gamemodes\Own.pwn(2532) : warning 213: tag mismatch


    Die Zeilen dazu sehen so aus:
    new car = 1;
    CarInfo[playerid][car][cTyp] = mysql_GetInt2("cars","typ","ownerid",SpielerInfo[playerid][paccID],"usercar","1");

  • Mach es so


    stock mysql_GetInta(Tablae[], Field[], Where[], Is[]) { new query[128]; mysql_real_escape_string(Table, Table); mysql_real_escape_string(Field, Field); mysql_real_escape_string(Where, Where); mysql_real_escape_string(Is, Is); format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is); mysql_query(query); mysql_store_result(); new sqlint = mysql_fetch_int(); mysql_free_result(); return sqlint;mysql_reload }


  • Mach es so


    stock mysql_GetInta(Tablae[], Field[], Where[], Is[]) { new query[128]; mysql_real_escape_string(Table, Table); mysql_real_escape_string(Field, Field); mysql_real_escape_string(Where, Where); mysql_real_escape_string(Is, Is); format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is); mysql_query(query); mysql_store_result(); new sqlint = mysql_fetch_int(); mysql_free_result(); return sqlint;mysql_reload }



    Aber dann ließt er die Felder doch nur wieder unter 1 Bedingung aus?!?
    Es hat geklappt, bi auf diesen blöden Warning


    Edit:
    Also das Warning kommt von meinem CarInfo am Anfang. Dann muss ich mir wohl was anderes überlegen.

  • Das maddin Tutorial ist totaler Bullshit. Für jeden Wert eine Abfrage? Viel Spaß wenn du mal 100 Leute auf deinem Server hast.

    Erfahrung ist der beste Lehrmeister. Nur das Schulgeld ist teuer.
    Thomas Carlyle (1795-1881)

  • stock mysql_GetInt(Table[], Field[], Where[], Is[], Where2[], Is2[])
    Schau dir die Parameter an...


    Is ist ein String und paccID ist ein Integer, also benutze format und mach aus paccID einen String:

    new s[24], car = 1;
    format(s, 24, "%d", SpielerInfo[playerid][paccID]);
    CarInfo[playerid][car][cTyp] = mysql_GetInt2("cars","typ","ownerid",s,"usercar","1");


    Gruß, Piet