Standard Mysql Funktionen erweitern

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
  • Mal eine kleine Frage bezüglich Mysql Stocks:


    Man benutzt ja die schon in vielen Tutorials angefertigten Stocks: mysql_GetInt oder mysql_GetString etc.
    Diese nutze ich selber auch. Nun würde ich gerne wissen ob es möglich ist ohne viel überlegung dies ein wenig dynamischer zu machen. Nehmen wir mal an ich brauche ein integer aus einer Datenbank, muss dazu aber 2 Felder abfragen.


    Normal:

    Code
    Query: "SELECT [INTEGER] FROM  [TABELLE] WHERE [SPALTE] = [WERT]"


    mit 2 Feldern:

    Code
    Query: "SELECT [INTEGER] FROM [TABELLE] WHERE [SPALTE 1] = [WERTx] AND [SPALTE 2] = [WERTy]"


    bzw mit mehreren Feldern:

    Code
    Query: "SELECT [INTEGER] FROM [TABELLE] WHERE [SPALTE 1] = [WERTx] AND [SPALTE 2] = [WERTy] AND ......."


    Dazu würde ich gerne eine Funktion schreiben die jedoch unabhängig davon wieviele Felder man abfragen will immer funktioniert.


    ähnlich wie beispielweise die SetTimerEx funktion wo du die Werttypen angibst "sdsasdss" und dahinter dann die Werte entsprechend auflistest. Nur ist dies nicht ganz so einfach umsetzbar wie bei diesem Beispiel.



    Wäre sehr nett wenn mir da jemand weiter helfen könnte :)


    PS Beispiel wie die Funktion aufgebaut sein kann:


    mysql_GetIntEx(Table[], Field[], Where[], Is[], Where2[], Is2[], Where3[], Is3[]) Wobei die Parameter nach Is[] dann optional wären und man somit beliebig viele Felder abfragen kann.

  • Sondern? Hier mal mein Mysql_GetInt:


    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;
    }


    Und wie ich es dann bei 2 Feldern hatte:


    stock mysql_GetIntParams(Table[], Field[], Where[], Is[], aWhere[], aIs[])
    {
    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(aWhere, aWhere);
    mysql_real_escape_string(aIs, aIs);
    format(query, 128, "SELECT %s FROM %s WHERE %s = '%s' And %s = '%s'", Field, Table, Where, Is, aWhere, aIs);
    mysql_query(query);
    mysql_store_result();
    new sqlint = mysql_fetch_int();
    mysql_free_result();
    return sqlint;
    }

  • Das ist kompletter quatsch!


    1. benutzte ich nicht das R7 Plugin also bringen mir auch keine R7 Funktionen was.


    2. Funktioniert mein Code.
    Ich darf auf keinen fall OR benutzen!! Ich frage 2 verschiedene Spalten ab und nicht die selbe, das wäre ja dann easygoing. Es geht darum mehrere verschiedene Spalten auf verschiedene Werte abzufragen ohne dabei jedesmal für diese sonderfälle wo ich mehrere spalten abfrage eine eigene stock schreiben muss sondern eine dynamische stock schreibe in der ich optional mehrere spalten abfragen kann.


    Wenn dies nicht möglich ist hat sich die Frage erledigt, ist es jedoch möglich, was ich glaube, dann wäre es nett wenn mir da ein paar Hilfen gegeben werden könnten.


    Nochmal: Es geht hier nicht um Fehlerhafte Codes, sondern darum, es einfacher und dynamischer und eventuell sogar leistungsfähiger zu gestalten :)

  • Benutz - wie es sich gehört - direkt die MYSQL-eigenen Querys und lass die Finger von die Dinger (Stocks)


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'