Hallo allemaal,

volgend probleempje, ik heb een tabel met 3 velden (id, date (type date) en event (varchar)). Nu ben ik zover dat ik een adtum met bijbehorend event kan toevoegen en alle events bekijken. Bij het bekijken van de events zie ik de datum in volgende staat: dd-mm-yyyy. Maar nu zou ik dit ook op die manier willen toevoegen. Momenteel moet ik dit nog doen op volgende manier: yyyy-mm-dd.

Dit is de code voor de 2 bestanden:

weergeven.php
<?php
mysql_connect('localhost','root','');
mysql_select_db('mijndb') or die (mysql_error());

if(mysql_result(mysql_query("SELECT COUNT(id) FROM `events`"),0) == 0)
  {
    echo 'Er staan nog geen events in de database';
  }
else
  {

  ?>
<table>
<tr>
<td>Datum:</td>
<td>Event:</td>
</tr>
<?php
  $qSelect_berichten  = mysql_query('SELECT * FROM `events`') or die (mysql_error());
  while($aBerichten = mysql_fetch_array($qSelect_berichten))
    {
     
      $datum = $aBerichten['date'];

      $nieuw_datum = substr( $datum, 8, 2 ) . '-' . substr( $datum, 5, 2 ) . '-' . substr( $datum, 0, 4 );

      echo '<tr>
              <td>'.$nieuw_datum.'</td>
              <td>'.$aBerichten['event'].'</td>
            </tr>';
    }
     echo '</table>';
   }
?>

<br /><


toevoegen.php
<?php
mysql_connect('localhost','root','');
mysql_select_db('mijndb') or die (mysql_error());

if(isset($_POST['verzenden']))
  {
    $Date        =    addslashes($_POST['date']);
    $Event      =    addslashes($_POST['event']);
    
    mysql_query("INSERT INTO events (date, event) VALUES ('".$Date."', '".$Event."')") or die (mysql_error());

    echo 'Je gegevens zijn succesvol in de database geplaatst <br />';
  }
else
  {
?>
<form action="<?=$_SERVER['PHP_SELF']?> " method="post">
Datum: <input type="text" name="date" /><br />
Event: <input type="text" name="event" /><br />
<input type="submit" name="verzenden" value="verzenden" />
</form>
<?
  }
?> 


Kan er iemand mij hierbij helpen?
je kan dit doen met DATE_FORMAT

DATE_FORMAT(datumveld,'&d-%m-%Y');

levert op: dag-maand-jaar

DATE_FORMAT(datumveld,'&Y-%m-%d');

levert op jaar-maand-dag
En waar moet ik dant dan invoegen?
DATE_FORMAT kan je gebruiken in je query.
SELECT
   id,
   DATE_FORMAT(date, '%d-%m-%Y'),
   event 
FROM
   events;


En geen ` in je query gebruiken! Deze heb je nergens voor nodig, je leert jezelf alleen verkeerde dingen aan!
En dat moet ik toevoeen in toevoegen.php?
een beetje zelf nadenken mag ook wel,

je zet het in je query waar je het nodig hebt, in je database moet het als jaar-maand-dag staan en voor weergeven wil je waarschijnlijk dag-maand-jaar hebben.
Toevoegen kan toch gewoon met NOW().
Ivm dat nadenken (sorry maar tis allemaal nieuw voor mij, toch wat betreft PHPism Mysql). Mijn theorie. Ik geef een datum in (dd-mm-yyyy), deze wordt in een variabele gestopt, daarna omgezet naar de vorm voor mysql (dus yyyy-mm-dd). Klopt dit. Andersom werkt het al. Dus van de db naar de weergave pagina.
Ik heb het online gezet. hp://www.herenvanzichem.be/test/agenda.php
Daar zie je volgende datum instaan: 20-01-2012, maar ik heb dit ingegeven: 12-1-2006.
Hier vind je de link nog eens.
jvuz schreef op 19.07.2006 15:26
Mijn theorie. Ik geef een datum in (dd-mm-yyyy), deze wordt in een variabele gestopt, daarna omgezet naar de vorm voor mysql (dus yyyy-mm-dd). Klopt dit.


Je zult deze datum met behulp van php om moeten zetten naar yyyy-mm-dd omdat MySQL nou eenmaal alleen maar data slikt van het formaat jaar-maand-dag. (Voor alle toegestane notaties zie ook hier.)

In jouw geval leest MySQL 12-1-2006 in het jaar-maand-dag formaat dus als 20-01-2012 (20 komt van 2006, 01 komt van 1, 2012 komt van 12)...

ps. Je zou je script heel makkelijk kunnen aanpassen door je form iets te wijzigen. Neem bij de datum gewoon 3 verschillende inputs voor dag, maand en jaar. Als je de datum naar de database wilt schrijven kunt je de input gewoon achter elkaar zetten als YYYYMMDD (een van de formaten die MySQL wel slikt).

Reageren