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?
Verreweg de mooiste manier om dat te doen is door alleen de betreffende rijen uit de database te selecteren.

<?php

$sql = "SELECT * FROM events WHERE date >= NOW()";

?>
Blanche schreef op 20.07.2006 11:24
Verreweg de mooiste manier om dat te doen is door alleen de betreffende rijen uit de database te selecteren.

<?php

$sql = "SELECT * FROM events WHERE date >= NOW()";

?>


En dan is het NOG mooier om ook alleen de benodigde velden op te halen ipv *

SELECT veld1, veld2, veld3 FROM events WHERE date >=NOW()
Het probleem van de data is nu opgelost. Ik heb dit op de volgende manier gedaan:


<?php
mysql_connect('localhost','root','');
mysql_select_db('jvanattenhoven') or die (mysql_error());

$today = date("Y-m-d");

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

  ?>
<table border=1 cellpadding=2 cellspacing=0>
<tr>
<td  style="width:300px;">Datum:</td>
<td>Event:</td>
</tr>
<?php
  $qSelect_berichten  = mysql_query("SELECT * FROM `events` WHERE `datum`>='$today' ORDER by `datum`") or die (mysql_error());
  while($aBerichten = mysql_fetch_array($qSelect_berichten))
    {
     
      $datum = $aBerichten['datum'];

      $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 />


Allemaal al heel erg bedankt voor de hulp! Het werkt!

Nu de volgende stap is daar natuurlijk één of meerdere gebruikers aanmaken, die de agenda mogen aanpassen. Maar dat zal een ander paar mouwen worden, vrees ik.
SELECT * FROM `events` WHERE `datum`>='$today' ORDER by `datum`

He bah!

Werkt het zo niet gewoon?
SELECT DATE_FORMAT(datum, '%d-%m-%Y'), event FROM events WHERE datum >= NOW() ORDER BY datum

En dan het nieuw_datum gedeelte weghalen.

Als je blijft programmeren zoals nu krijg je later gegarandeerd een keer problemen.
Bedoel je zo?

<?php
mysql_connect('localhost','root','');
mysql_select_db('jvanattenhoven') or die (mysql_error());

$today = date("Y-m-d");

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

  ?>
<table border=1 cellpadding=2 cellspacing=0>
<tr>
<td  style="width:300px;">Datum:</td>
<td>Event:</td>
</tr>
<?php
  $qSelect_berichten  = mysql_query("SELECT DATE_FORMAT(datum, '%d-%m-%Y'), event FROM events WHERE datum >= NOW() ORDER BY datum
") or die (mysql_error());
  while($aBerichten = mysql_fetch_array($qSelect_berichten))
    {
     
      $datum = $aBerichten['datum'];

      

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

<br />


Dan krijg ik foutboodschappen.
Welke fout?

Sowieso heb je $nieuw_datum laten staan.
Verander dat even in $aBerichten['ndatum'] en verander je query naar dit:
[code]SELECT DATE_FORMAT(datum, '%d-%m-%Y') AS ndatum, event FROM events WHERE datum >= NOW() ORDER BY datum[code]Ik was de alias vergeten.
Sorry, ik snap wat je wil zeggen, maar ik krijg het niet te goei, sorry. :(
Dan laat je het bij het oude :)
Haal iig de backtickets weg ` dan werkt het nog steeds, maar heb je een nettere query :)
Ik zou CURRENT_DATE() i.p.v. NOW() gebruiken. Deze zal altijd alle evenementen van vandaag geven. Als je NOW() gebruikt zullen evenementen aan het begin van de dag niet weergegeven worden, omdat deze in het verleden liggen.

Correct me if I'm wrong...
DToch heel erg bedankt. Ik ga me er wel eens mee bezig houden, om die code geïntegreerd te krijgen. Dit was trouwens mijn eerste codering in MySQL/PHP. Ik weet het, ik moet nog heel veel leren.

Reageren