MySQL Autohaus System - Es wird nichts in die Tabelle eingetragen?

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
  • Guten Morgen miteinander.


    Undzwar habe ich ein kleines Problem mit meinem Autohaus System!
    Es wird nichts in die Tabelle übertragen? Kann mir da evtl. einer helfen :S


    Also, das passiert wenn der Spieler ein Auto kauft:

    mysql_query("SELECT NULL FROM `Autos`");
    mysql_store_result();
    new rows = mysql_num_rows();
    mysql_free_result();
    new AutoID = rows++;
    if(AutoID < 5)
    {
    new query[350];
    format(query,sizeof(query),"INSERT INTO `Autos` (Name,Farbe1,Farbe2,Schluessel,Model,Preis,pX,pY,pZ,pA,Nummernschild) VALUES('%s','%d','%d','%d','%d','%d','%d','%d','%d','%d','%s')",GetName(playerid),AutoInfo[playerid][pFarbe1],AutoInfo[playerid][pFarbe2],AutoInfo[playerid][pAuto],AutoInfo[playerid][pModel],AutoInfo[playerid][pPreis],AutoInfo[playerid][pX],AutoInfo[playerid][pY],AutoInfo[playerid][pZ],AutoInfo[playerid][pA],AutoInfo[playerid][pNummernschild]);
    mysql_query(query);
    }



    SQL
    /* Tabellen Struktur: Autos */  CREATE TABLE `Autos` (	`Besitzer` varchar(24) NOT NULL,	`Farbe1` INT(3) NOT NULL DEFAULT '0',	`Farbe2` INT(3) NOT NULL DEFAULT '0',	`Schluessel` INT(2) NOT NULL DEFAULT '0',	`Model` INT(3) NOT NULL DEFAULT '0',	`Preis` INT(5) NOT NULL DEFAULT '0',	`PosX` FLOAT(15) NOT NULL ,	`PosY` FLOAT(15) NOT NULL ,	`PosZ` FLOAT(15) NOT NULL ,	`PosA` FLOAT(15) NOT NULL ,	`Nummernschild` varchar(50) NOT NULL DEFAULT '0',	PRIMARY KEY (`Besitzer`)	)	COLLATE='utf8_general_ci'	ENGINE=InnoDB;


    Hier sollte ja eig. schon was eingetragen werden, wird es aber nicht.
    Ich hoffe jmd. kann mir helfen :)


    Lg

  • Nimm statt SELECT NULL lieber SELECT COUNT(*).


    new AutoID = rows++; // bedeutet:
    // AutoID hat den Wert von rows,
    // rows wird gleichzeitig um eins erhöht.



    if(AutoID < 5)
    // wenn mehr 4 Rows gefunden werden, macht der garnichts mehr.

  • Hmm, ich kriegs nicht hin ^^.
    Kannst du es mir zeigen?

  • Ich versteh nichtmal was du damit bezwecken möchtest...


    Lange Geschichte, wollte eig. nur abfragen ob was in der Tabelle existiert ^^

  • Ich würde dann auch den mysql_debug(1) Modus empfehlen, bei deinem Code ist mir grad ein Fehler aufgefallen, du kannst doch die pX,pY,pZ nicht als Integer abspeichern ?! Ich nehme mal an das diese die Variablen für das Parken sind, da müsstest du statt %d schon %f verwenden..




    Sollte ich mich irren, sage ich nur : Kein Mensch ist Perfekt

    MFG

  • Nadann mit 'SELECT COUNT(*)' und mysql_fetch_int.
    Dann hast du die Anzahl der Reihen in der Tabelle.


    Wenn die 0 sind, hast du nichts in der Tabelle, andernfalls schon :)


    *hust* Posteingang voll *hust*


    Ehm danke ich versuchs gerade


    *hust* lösch ihn ^^ *hust*