MySQL Werte auszählen?

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
  • Hey Com,


    Für mein Wirtschaftssystem wollte ich al fragen wie ich mit MySQL zählen kann wer in den verscheidenen Städten wohnt


    Undzwar steht in der Tabelle Accounts:


    Einwohnerort


    Wenn Einwohnerort die Variable 0 in den Spielerspalten hat dann einwohner[0] ++,
    Wenn Einwohnerort die Var 1 hat denn einwohner[1] ++;
    Und Wenn Einwohnerort die Var 2 hat dann einwohner[2] ++;


    Ist mit einer WhileSchleife mögliuch aber wie


    PS: Nutze das R5 Plugin

  • Genau so ist richtig. Gerade für sowas bietet sich MYSQL an. Wie bereits gesagt den Query ausführen und die zurückgegebenen Werte auslesen (jedes Plugin bietet da eigene Methoden und Umsetzungen an).

  • SQL
    SELECT einwohnerort FROM accounts WHERE `Einwohnerort` = '0'


    Und dann die Anzahl von spalten zählen lassen... so würde ich das machen.(Bin aber kein Profi, also lass dir weitere Tipps geben :D)


    MfG



    Habe es jetzt so


    new einwohner[3],result;
    mysql_query("SELECT `Name`, `Einwohnerort` FROM `accounts`");
    mysql_store_result();
    while(mysql_retrieve_row())
    {
    mysql_fetch_field__row(result,"Einwohnerort"); //Error
    if(result == 0) einwohner[0] ++;
    if(result == 1) einwohner[1] ++;
    if(result == 2) einwohner[2] ++;
    }
    mysql_free_result();


    Allerdings mit nem error


    C:\Users\Christian\Desktop\Sa Mp - Project\Pixel Roleplay - Old\gamemodes\Selfmade.pwn(758) : error 035: argument type mismatch (argument 1)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

  • Du musst garnicht jedes zurückgegebene Tupel (Zeile) durchgehen. Es reicht die Anzahl der zurückgegebenen Tupel.
    Welches Plugin nutzt du?


    btw: result wird vorraussichtlich ein String und kein Interger sein.


  • Wenn du R5 benutzt:

    new einwohner[3];
    mysql_query("SELECT `Einwohnerort` FROM `accounts` WHERE `Einwohnerort`='0'");
    mysql_store_result();
    einwohner[0] = mysql_num_rows();
    mysql_free_result();
    mysql_query("SELECT `Einwohnerort` FROM `accounts` WHERE `Einwohnerort`='1'");
    mysql_store_result();
    einwohner[1] = mysql_num_rows();
    mysql_free_result();
    mysql_query("SELECT `Einwohnerort` FROM `accounts` WHERE `Einwohnerort`='2'");
    mysql_store_result();
    einwohner[2] = mysql_num_rows();
    mysql_free_result();


    jetzt hast du in "einwohner" jeweils die Anzahl der Einwohner stehen.


    Geht bestimmt auch irgendwie mit einem Query, ich weiß aber nicht wie ^^


    MfG


    Nachtrag:


    BTW -> By The Way

  • Integer ist eine Zahl sprich 5 oder 6 oder 14000
    String ist eine Zeichenkette sprich "Hallo Welt" oder "5" oder "6" (Auch "Zahlen" können eine Zeichenkette bilden).


    Probiers mal so


    new einwohner[3],result[16];
    mysql_query("SELECT `Name`, `Einwohnerort` FROM `accounts`");
    mysql_store_result();
    while(mysql_retrieve_row())
    {
    mysql_fetch_field__row(result,"Einwohnerort"); //Error
    if(result == 0) einwohner[0] ++;
    if(result == 1) einwohner[1] ++;
    if(result == 2) einwohner[2] ++;
    }
    mysql_free_result();


    Oder schick mir ma nen Forenlink o.ä zum Plugin (Ich finde das grad net)


  • Habe es jetzt so


    new einwohner[3],result[2];
    mysql_query("SELECT `Name`, `Einwohnerort` FROM `accounts`");
    mysql_store_result();
    while(mysql_retrieve_row())
    {
    mysql_fetch_field_row(result,"Einwohnerort");
    if(result[1] == 0) einwohner[0] ++;
    if(result[1] == 1) einwohner[1] ++;
    if(result[1] == 2) einwohner[2] ++;
    }
    mysql_free_result();

  • So schreibe ich es nochmal,


    Die Werte sind jetzt auf 0 da sich das "mysql_fetch_field_row(result[1],"Einwohnerort");" nen String angeln will das es aber nut eiin Integer ist wird da nichts gemacht kann mir denn jemand verraten wie ich das mit Integer mache?


    Mfg