Beiträge von RunAway

    dann poste den debug



    //Edit Verwendung aus dem SQL Wiki verwendet:

    SQL
    Tabellen können auch ohne Verwendung von Schlüsselfeldern miteinander verknüpft werden:
    
    
    SELECT Vorlesung.Titel, Professor.Name
    FROM Professor, Vorlesung
    WHERE Professor.PersNr = Vorlesung.PersNr

    Die Nutzung der Funktionen, die das MySQL Plugin bietet fällt unter die Kategorie wie die Nutzung von DINI usw.
    Die Erstellung des Querys ( SQL Kommando ) ,welches an der MySQL Datenbank ausgeführt wird, ist etwas Anderes.

    SQL
    SELECT `EnterX`,`EnterY`,`EnterZ`,`ID`,`SpielerID` FROM `haus`
    SELECT `Name` FROM `accounts` WHERE `ID` = '%d'


    Diese Beiden SQL Kommandos zu kombinieren hat nichts mit PAWN / SA:MP zu tun,auch wenn du es hier nutzen kannst. Denn SQL ist eine eigenen Sprache.
    Ein einfaches Beispiel wäre hier zu finden.
    Mit einem WHERE ist es ein leichstes die Beiden zu verknüpfen.


    Also ich hab das so verstanden
    format(query,256,"SELECT haus.EnterX,haus.EnterY,haus.EnterZ,haus.ID,haus.SpielerID,haus.Preis,haus.Mietpreis,accounts.Name FROM haus, accounts WHERE accounts.ID = haus.ID");
    mysql_query(query);
    Er ließt es auch aus( richtiger Syntax), aber 0 rows.


    //edit Zitat hinzugefügt, Aber in der mysql_debug log wird halt alles richtig angezeigt nur das 0 einträge angeblich in der tabelle wären obwohl 6 drin sind.

    Mit einem besser gewähltem SQL Kommando.
    Da du in jedem ( Ausnahme wahrscheinlich GetPlayerMySQLName ) Befehl aus der Tabelle "haus" ließt,kannst du einfach einen Query nutzen und dort alle Daten auslesen.
    Da wir aber a) kein SQL - Hilfeforum sind und b) ich dir nicht die Lösung vorschreibe, überleg mal ein wenig selber ;).
    Was auch immer GetPlayerMySQLName, dass kann man sicherlich auch direkt mit dem Query verknüpfen über WHERE.
    Kannst ja einfach mal die Funktion GetPlayerMySQLName posten, Tatbestand b bleibt aber erhalten.


    Also Punkt a kann ich nicht verstehen, da MySQL eine Speicherart ist, die man mit Pawn nutzen kann. So müßte man hier auch Dini,SII und sonstiges verbieten....


    Ich habe grad mal gegoogelt, man kann es mit dem Syntax Join machen nur diesen verstehe ich nicht :(

    stock GetPlayerMySQLName(id)
    {
    new query[130], Get[130];
    format(query,sizeof(query), "SELECT `Name` FROM `accounts` WHERE `ID` = '%d'", id);
    mysql_query(query);
    mysql_store_result();
    mysql_fetch_row(Get);
    mysql_free_result();
    return Get;
    }




    new str[512],dest[5][64],query[128];
    format(query,128,"SELECT `EnterX`,`EnterY`,`EnterZ`,`ID`,`SpielerID` FROM `haus`");
    mysql_query(query);
    mysql_store_result();
    while(mysql_fetch_row_format(str))
    {
    mysql_fetch_field_row(dest[0],"EnterX");//16
    mysql_fetch_field_row(dest[1],"EnterY");
    mysql_fetch_field_row(dest[2],"EnterZ");
    mysql_fetch_field_row(dest[3],"ID");
    mysql_fetch_field_row(dest[4],"SpielerID");
    new string[256];
    if(strval(dest[4]) == 0)
    {
    format(string,256,"HausID: %s\nDieses Haus ist zu verkaufen!\nPreis: %d\n/enter um es zu besichtigen!\n/hauskaufen um das Haus zu kaufen\n/mieten zum einmieten\nMietpreis/PayDay: %d",dest[3],mysql_GetInt("haus","Preis","ID",dest[3]),mysql_GetInt("haus","Mietpreis","ID",dest[3]));
    new Text3D:labelid = CreateDynamic3DTextLabel(string, COLOR_RED, floatstr(dest[0]),floatstr(dest[1]), floatstr(dest[2])+0.35, 5.0);
    new pickid = CreateDynamicPickup(1272, 1,floatstr(dest[0]),floatstr(dest[1]), floatstr(dest[2]));
    mysql_SetInt("haus", "PickupID", pickid, "ID", dest[3]);
    mysql_SetInt("haus", "LabelID", _:labelid, "ID", dest[3]);
    }
    else
    {
    format(string,256,"HausID: %s\nDieses Haus gehört: %s\n/mieten um dort zu wohnen!\nMietpreis/PayDay: %d",dest[3],GetPlayerMySQLName(strval(dest[4])),mysql_GetInt("haus","Mietpreis","ID",dest[3]));
    new Text3D:labelid = CreateDynamic3DTextLabel(string, COLOR_RED, floatstr(dest[0]),floatstr(dest[1]), floatstr(dest[2])+0.35, 5.0);
    new pickid = CreateDynamicPickup(1273, 1,floatstr(dest[0]),floatstr(dest[1]), floatstr(dest[2]));
    mysql_SetInt("haus", "PickupID", pickid, "ID", dest[3]);
    mysql_SetInt("haus", "LabelID", _:labelid, "ID", dest[3]);
    }


    }
    das problem ist ja nicht nur bei dieser schleife sondern bei anderen mit anderen colums und tabellen auch


    //edit beim debuggen kommt 5 raus bei 6 Zeilen

    Hey,
    Deise Schlefie läd mir nur den ersten Eintrag in der datenbank
    new str[512],dest[5][64],query[128];
    format(query,128,"SELECT `EnterX`,`EnterY`,`EnterZ`,`ID`,`SpielerID` FROM `haus`");
    mysql_query(query);
    mysql_store_result();
    while(mysql_fetch_row_format(str))
    {


    Hat wer eine Idee, was falsch ist?