Vehikel aus MySQL Problem

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 will meine Vehikel alle aus einer MySQL Datenbank auslesen.
    Das is tmein Quelltext:
    // Autos:
    new carqry[100],num_cars,i,carvid[100],carx[100],cary[100],carz[100],carangle[100],carcol1[100],carcol2[100];
    format(carqry,sizeof(carqry),"SELECT * FROM cars");
    samp_mysql_query(carqry);
    samp_mysql_store_result();
    num_cars=samp_mysql_num_rows();
    i=1;
    while(i<num_cars)
    {
    samp_mysql_get_field("vid", carvid);
    samp_mysql_get_field("x", carx);
    samp_mysql_get_field("y", cary);
    samp_mysql_get_field("z", carz);
    samp_mysql_get_field("angle", carangle);
    samp_mysql_get_field("color1", carcol1);
    samp_mysql_get_field("color2", carcol2);
    AddStaticVehicle(carvid, carx, cary, carz, carangle, carcol1, carcol2);
    i=i+1;
    }
    samp_mysql_free_result();
    und zwar bekomme ich immer folgende Fehlermeldung beim Compiler:

    Zitat

    C:\Dokumente und Einstellungen\Marc\Desktop\samp02Xserver.win32\gamemodes\vmtek-rl.pwn(389) : error 035: argument type mismatch (argument 1)
    C:\Dokumente und Einstellungen\Marc\Desktop\samp02Xserver.win32\gamemodes\vmtek-rl.pwn(754) : warning 203: symbol is never used: "AutoInfo"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

  • du kannst der funktion keine strings übergeben... mach daraus integer und floatvariablen und fertig.


    AddStaticVehicle(strval(carvid), Floatstr(carx), Floatstr(cary), Floatstr(carz), Floatstr(carangle), strval(carcol1), strval(carcol2));


    nicht getestet^^


    das wird aber so sowieso nicht funktionieren. benutz ne for schleife und dann musst doch wohl noch etwas dran arbeiten^^

  • du kannst der funktion keine strings übergeben... mach daraus integer und floatvariablen und fertig.

    das hat er schon gemacht ;)...


    könnte ev. jemand ein beispiel für ne for-schleife für das auslesen der vehikel aus mysql hier posten?


    ich sollte das jetzt schreiben, da virtualmarc bis 19:10 Uhr wegen einer fehlfunktion seines browsers gesperrt ist. ;)

  • die 2 fehler zeigen an dass er parameter falsch übergibt.
    die schleife wird ihm immer das gleiche fahrzeug spawnen.


    bitte sammel noch etwas erfahrung bevor du hier tipps gibst.


    in meinem tor-tutorial ist ein beispiel für das laden aus einer sql datenbank.(signatur)

  • ich schreibe nur für ihn hier, weil er bis 19:10 Uhr gesperrt ist ;)
    er hat das jetzt ausprobiert mit deinem tut, aber er bekommts trotzdem nicht hin.. hier mal der code:
    new carvid,carx[100],cary[100],carz[100],carangle[100],carcol1[100],carcol2[100],sql[60],strFromDb[256],arrCoords[17][40];
    samp_mysql_query("SELECT COUNT(*) FROM cars");
    samp_mysql_store_result();
    samp_mysql_fetch_row(strFromDb);
    new SizeOfGates = strval(strFromDb);
    for(new i = 0; i < SizeOfGates; i++)
    {
    format(sql, sizeof(sql), "SELECT * FROM cars LIMIT %d, 1", i);
    samp_mysql_query(sql);
    samp_mysql_store_result();
    if (samp_mysql_num_rows() > 0)
    {
    samp_mysql_fetch_row(strFromDb);
    split(strFromDb, arrCoords, '|');
    floatstr(arrCoords[7]), 1);
    AutoInfo[i][dbid] = strval(arrCoords[0]);
    AutoInfo[i][vid] = strval(arrCoords[1]);
    AutoInfo[i][x] = floatstr(arrCoords[2]);
    AutoInfo[i][y] = floatstr(arrCoords[3]);
    AutoInfo[i][z] = floatstr(arrCoords[4]);
    AutoInfo[i][angle] = floatstr(arrCoords[5]);
    AutoInfo[i][color1] = strval(arrCoords[6]);
    AutoInfo[i][color2] = strval(arrCoords[7]);
    CreateVehicle(AutoInfo[i][vid], AutoInfo[i][x], AutoInfo[i][y], AutoInfo[i][z], AutoInfo[i][angle], AutoInfo[i][color1], AutoInfo[i][color2], 1);
    }
    }

  • Was hat
    floatstr(arrCoords[7]), 1);
    nach split verloren? Ohne weiteren Code?


    Außerdem:
    Pass mal den Query an zu z.B. so etwas

    SQL
    SELECT * FROM cars WHERE id='%d'


    Oder wie auch immer bei dir "id" in der Datenbank heisst, bzw. geschrieben ist. LIMIT 1 brauchst du hier nicht, da die ids eindeutig sind...

  • dein autoinkrement steht auf 7851? omg


    nehm mal die zeile 15 raus. ich find keinen fehler :( vllt mal die gesplitteten werde ausgeben lassen?
    z.b.
    printf("%d", strval(arrCoords[1]));


    Zitat

    Id Verschiebung wo bzw. wenn er wo was löscht? im Spiel oder in der Datenbank?


    ich erkläre es mal...


    sagen wir du erstellst 3 fahrzeuge mit den sql id´s:


    1
    2
    3


    (in mysql fängt man mit autoinkrement bei 1 an zu zählen ;) )
    bis hierhin klappt alles. du lässt die zeilen zählen und bekommst 3 zurück:


    SQL
    SELECT * FROM cars WHERE id='1'
    SELECT * FROM cars WHERE id='2'
    SELECT * FROM cars WHERE id='3'


    wenn du jetzt das 2. auto löschst weil du es nicht haben willst wird daraus


    1
    3


    wenn du die zeilen der tabelle zählen lässt gibt er dir 2 zurück
    d.h. du machst du abfragen:


    SQL
    SELECT * FROM cars WHERE id='1'
    SELECT * FROM cars WHERE id='2'


    jetzt wird das erste fahrzeug geladen, beim 2. gibt es ein fehler und das dritte wird gar nicht erst abgefragt.

  • 7851 ist mein letzter wert, das ganze minus 633 und dann haste den startwert :D Das lag aber an meinem Browser. Firefox hat komischerweise jede seite (ohne dass ichs bemerkt habe) 12 mal aufgerufen :D Deswegen benutze ich auch IE hier im Forum, weil ich sonst vom Security System gebant werde :D das mit den gesplitteten werten ausgeben, werd ich sofort mal versuchen!


    So die ausgaben:


    ES GEHT!
    Es lag nicht an dem Spawnsystem, nur die Vehikelliste war nicht gerade gut. die ganzen autos waren in SF und man spawn in LV -.-
    Naja kennt jemand eine gute Vehikelliste mit max. 700 Vehikel, die überall in SA verteilt sind?


    Was den Absturz ausgelöst hat:
    Das war der Login O_o, aber wenn ich das Vehikelsystem auskommentiere geht der Login ohne Probleme, wenn mir da jmd. helfen kann, bitte melden, dann schicke ich den Quelltext zum drüber gucke n(ist nich nicht gearde viel)!

    2 Mal editiert, zuletzt von virtualmarc ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen