Ik heb vanalles afgezocht, maar waarschijnlijk niet met de juste keywords want ik kwma niet op het antwoord wat ik zocht.

Mijn probleem:
Ik wil zelf via een formulier een datum in een MySql database zetten.

dit doe ik via het volgende script:


  <?php

  if ($_POST["submit"]) {
  include("verbinding.php");
  echo "Verbinding laden is gelukt!";
  mysql_connect("$dbhost","$username","$dbww") or die ("Kan geen verbinding maken");
  echo "Verbinding maken is gelukt!";
  mysql_select_db("feestjes") or die ("Kan database niet vinden");
  $activiteitnaam = $_POST['naam'];
  $datum = $_POST['datum'];

  $sql = "INSERT INTO activiteiten SET activiteitNaam='$activiteitnaam', activiteitdatum='$datum' ";
  
  $query = mysql_query($sql) or die("bericht niet geplaatst!");
  echo "DB bijgewerkt";
  } else { ?>

  <form method="post" action="<?php echo $PHP_SELF;?>">
  	<table> 
  		<tr>
  			<td>Activiteit naam: </td>
  			<td><input type="text" name="naam"></td>
 	 	</tr>
 	 	<tr>
  			<td>Datum</td> 	
  			<td><input type="text" name="datum" "><td>
 		</tr>
  		<tr>
  			<td><input type="submit" name="submit" value="Post"></td>
  		</tr>
  </form>
   <?php } ?>

Als ik deze gegevens weer wil uitlezen met php krijg ik als datum 0000-00-00.
Hoe kan ik dit oplossen?
Zet je code volgende keer even tussen [ignore]
[/ignore] tags.

Aan je onderste reactie te zien neem ik aan dat je gebruik maakt van een DATE veld?

Wanneer je de datum invoerd moet je het in het formaat yyyy-mm-dd invoeren. (Bijv: 2007-06-21)

Ten eerste: Het is een date veld, of een datetime? En hoe zet je de datum in je formulier? het moet wel als volgt: 0000-00-00 ;)
Het is een date veld. Geen datetime dus.
Ik zie nu idd als ik via het formulier 2004-11-11 er in zet dit wel werkt.

Is er ook een manier om dit om te draaien?
Ja die mogelijkheid is er wel, voorbeeldje:


<?php

  if ($_POST["submit"]) {
  include("verbinding.php");
  echo "Verbinding laden is gelukt!";
  mysql_connect("$dbhost","$username","$dbww") or die ("Kan geen verbinding maken");
  echo "Verbinding maken is gelukt!";
  mysql_select_db("feestjes") or die ("Kan database niet vinden");
  $activiteitnaam = $_POST['naam'];
  list($dag, $maand, $jaar) =  explode("-", $_POST['datum']);
  $datum = $jaar."-".$maand."-".$dag;

  $sql = "INSERT INTO activiteiten SET activiteitNaam='".$activiteitnaam."', activiteitdatum='".$datum."'";
  
  $query = mysql_query($sql) or die("bericht niet geplaatst!");
  echo "DB bijgewerkt";
  } else { ?>

  <form method="post" action="<?php echo $PHP_SELF;?>">
      <table> 
          <tr>
              <td>Activiteit naam: </td>
              <td><input type="text" name="naam"></td>
          </tr>
          <tr>
              <td>Datum</td>     
              <td><input type="text" name="datum" "><td>
         </tr>
          <tr>
              <td><input type="submit" name="submit" value="Post"></td>
          </tr>
  </form>
   <?php } ?> 


Dan voer je het nu dd-mm-yyyy in. ( 21-06-2007 )
Je kunt er natuurlijk ook voor kiezen om de invoer van dat datum met behulp van select boxjes te doen. Of door aparte velden voor de dag, maand en het jaar.

Bovendien moet je, als je een datum door de gebruiker zelf in laat vullen, altijd nog [php]checkdate[/php]() gebruiken om te controleren of het wel een werkelijke datum is en dus bijvoorbeeld niet 30-02-2007.

Reageren