Daten in die DB einlesen

  • Hallo zusammen :D

    Guckt euch bitte mal diesen Quellcode hier an:

    PHP
    <?php $timestamp = time(); ?><?php $fg_geburtstag = date("d.m.Y",$timestamp); ?>
    <?php $last_login = date("d.m.Y",$timestamp); ?>
    
    
    <?php $eintrag = "INSERT INTO freshagotschi (login, psw, email, fg_art, fg_gender, fg_name, fg_geburtstag, fg_lebenspunkte, xp, last_login) 
    				  VALUES ('$login', '$psw', '$email', '$fg_art', '$fg_gender', '$fg_name', '$fg_geburtstag', '$fg_lebenspunkte', '$xp', '$last_login')"; ?>
    <?php $eintragen = mysql_query($eintrag); ?>

    Ich habe folgendes Problem. Oben fülle ich ja die Variablen $fg_geburtstag und $last_login mit dem heutigen Datum. Danach schreibe ich diese dann in die DB. Die Sache ist die, dass danach dann in der Tabelle auch in fg_geburtstag (zb 16.01.2006) steht. Aber nicht in $last_login. Wieso?

  • muss "$fg_geburtstag" auch der aktuelle zeitpunkt sein?
    wenn ja - probiers mal so:

    Code
    <? 
    	$eintrag = "INSERT INTO freshagotschi (login, psw, email, fg_art, fg_gender, fg_name, fg_geburtstag, fg_lebenspunkte, xp, last_login)
                  	VALUES ('$login', '$psw', '$email', '$fg_art', '$fg_gender', '$fg_name', NOW(), '$fg_lebenspunkte', '$xp', NOW())";
    	$eintragen = mysql_query($eintrag);
    
    	# dann beim auslesen: SELECT DATE_FORMAT(`datum`, '%d.%m.%Y') AS `datum` FROM `freshagotschi`
    ?>
  • Zitat von phore

    muss "$fg_geburtstag" auch der aktuelle zeitpunkt sein?

    Ja.

    Bei deinem Quellcode gibt es das selbe Problem wie bei meinem.. voll komisch, dass er das da nicht in die DB schreibt.

  • Halt so wie meintest, dass ich es probieren soll:

    Code
    <?
       $eintrag = "INSERT INTO freshagotschi (login, psw, email, fg_art, fg_gender, fg_name, fg_geburtstag, fg_lebenspunkte, xp, last_login)
                     VALUES ('$login', '$psw', '$email', '$fg_art', '$fg_gender', '$fg_name', NOW(), '$fg_lebenspunkte', '$xp', NOW())";
       $eintragen = mysql_query($eintrag);
    ?>

    Und habs nochma so probiert: - aber das klappt auch nicht

    PHP
    <?php $timestamp = time(); ?><?php $fg_geburtstag = date("d.m.Y",$timestamp); ?>
    <?php $eintrag = "INSERT INTO freshagotschi (login, psw, email, fg_art, fg_gender, fg_name, fg_geburtstag, fg_lebenspunkte, xp) 
    				  VALUES ('$login', '$psw', '$email', '$fg_art', '$fg_gender', '$fg_name', '$fg_geburtstag', '$fg_lebenspunkte', '$xp')"; ?>
    <?php $eintragen = mysql_query($eintrag); ?>
    
    
    <?php $timestamp = time(); ?><?php $last = date("d.m.Y",$timestamp); ?>
    <?php $eintrag = "INSERT INTO freshagotschi (last) 
    				  VALUES ('$last')"; ?>
    <?php $eintragen = mysql_query($eintrag); ?>
  • Ja, die heisst auf jeden Fall last_login.
    An einer späteren Stelle fülle ich die Spalte per UPDATE - da klappt das.

    Ausgegeben wird nichts, weil halt noch nichts drinne steht.
    Guck immer bei phpmyadmin und sehe da halt, dass nix reingeschrieben wurde.

  • versuche es mal so:

    Code
    $eintrag = "INSERT INTO freshagotschi (login, psw, email, fg_art, fg_gender, fg_name, fg_geburtstag, fg_lebenspunkte, xp, last_login) VALUES ('$login', '$psw', '$email', '$fg_art', '$fg_gender', '$fg_name', NOW(), '$fg_lebenspunkte', '$xp', NOW())";
       mysql_query($eintrag);  echo mysql_error();

    ich vermute mal das es ncith geht, das last_login und oder fg_geburtstag kein date oder date_time sein.

  • Zitat von GreenRover

    versuche es mal so:

    Code
    $eintrag = "INSERT INTO freshagotschi (login, psw, email, fg_art, fg_gender, fg_name, fg_geburtstag, fg_lebenspunkte, xp, last_login) VALUES ('$login', '$psw', '$email', '$fg_art', '$fg_gender', '$fg_name', NOW(), '$fg_lebenspunkte', '$xp', NOW())";
       mysql_query($eintrag);  echo mysql_error();

    ich vermute mal das es ncith geht, das last_login und oder fg_geburtstag kein date oder date_time sein.

    Hrm, leider noch immer das selbe Problem.

    Ich verstehe nicht so ganz deinen "Ich vermute.." Satz, was meinst du woran das liegen könnte?

    Weil das doch total sinnlos ist, dass eine Variable ankommt und eine nicht.

  • Habe das auf TEXT , weil unter DATE das Datum so abgelegt wird 2006.01.16 , ich brauche es aber so 16.01.2006.

    Aber wenn es daran liegen würde dürfte doch keine der beiden Variablen ankommen, oder?

  • nein dann geht das gesamt insert nicht. (-;

    @ knülps das datum wird 2006-01-16 abgelegt!

    und dann kannst du die funktion NOW auch nicht nutzen.

    ist doch klar, woher soll die auch wissen wie du das tatum haben willst !??!

    und wiso TEXT??

    ein char(10) reicht doch auch.

  • mit NOW() hast du doch eine gute lösung. stell das feld auf DATE, mit:

    Code
    # dann beim auslesen: SELECT DATE_FORMAT(`datum`, '%d.%m.%Y') AS `datum` FROM `freshagotschi`


    kannst du ja dann das format bestimmen.
    so long - phore

  • Habs auf DATE gestellt und hiermit ausprobiert:

    PHP
    <?php $eintrag = "INSERT INTO freshagotschi (login, psw, email, fg_art, fg_gender, fg_name, fg_geburtstag, fg_lebenspunkte, xp, last_login) VALUES ('$login', '$psw', '$email', '$fg_art', '$fg_gender', '$fg_name', NOW(), '$fg_lebenspunkte', '$xp', NOW())";
       mysql_query($eintrag);  echo mysql_error();
    ?>

    Nu kommt bei beiden aber immer nur ein 00-00-0000 in der DB an.