Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

Sorteren op datum in php

Anoniem
Japaveh
8 antwoorden
  • hallo allemaal,

    Wie kan mij zeggen wat er mis is met onderstaande code.
    Ik wil dat alles wat er uit de datebase gehaald wordt, wordt gesorteerd op de jongste datum. Wanneer ik nu een datum invoer komt er ten aller tijde 01-01-1970 te staan.

    Wat is er aan de hand?


    [code:1:9d58989292]
    <?php
    require 'connect.php';
    $date = mysql_query("SELECT DATE_FORMAT(datum, %d-%m-%Y) AS datum FROM agenda ORDER BY datum DESC");

    $query = "SELECT * FROM agenda ORDER BY datum DESC";
    $result = mysql_query($query) or die(mysql_error());
    ?>
    <table border="0" align="center">
    <tr bgcolor="#000066">
    <td><a href="insAgenda.php"><font color="#FFFF00">Nieuw toevoegen</font></a></td>
    <td><a href="logout.php"><font color="#FFFF00">Uitloggen</font></a></td>
    </tr>
    <tr bgcolor="#CCCCCC">
    <td><span class="style1">ID</span></td>
    <td><span class="style1">Naam</span></td>
    <td><span class="style1">Adres</span></td>
    <td><span class="style1">Telefoon</span></td>
    <td><span class="style1">Datum</span></td>
    <td><span class="style1">Begintijd</span></td>
    <td><span class="style1">Eindtijd</span></td>
    <td><span class="style1">Lokatie</span></td>
    <td><span class="style1">Soort feest</span></td>
    <td><span class="style1">Opmerking</span></td>
    </tr>
    <?php
    while ($row = mysql_fetch_object($result))
    {
    ?>
    <tr bgcolor="#FFFFCC">
    <td><span class="style2"><? echo $row->ID;?></span></td>
    <td><span class="style2"><? echo $row->naam;?></span></td>
    <td><span class="style2"><? echo $row->adres;?></span></td>
    <td><span class="style2"><? echo $row->telefoon;?></span></td>
    <td><span class="style2"><? echo date("d-m-Y", $row->datum);?></span></td>
    <td><span class="style2"><? echo $row->begintijd;?></span></td>
    <td><span class="style2"><? echo $row->eindtijd;?></span></td>
    <td><span class="style2"><? echo $row->lokatie;?></span></td>
    <td><span class="style2"><? echo $row->srt_feest;?></span></td>
    <td bgcolor="#FFFFCC"><span class="style2"><? echo $row->opmerking;?></span></td>
    <td><a href="delete.php?ID=<?=$row->ID;?>" class="style2">Delete</a></td>
    <td><a href="edit.php?ID=<?=$row->ID;?>" class="style2">Edit</a></td>
    </tr>

    <?php
    }
    ?>[/code:1:9d58989292]

    alvast bedankt voor jullie hulp.

    Eric.
  • Zet %d-%m-%Y even tussen quotes. Deze query is foutief en resulteerd dus is een "ongeldige" datum (of te wel de eerste datum die php snapt)
    [code:1:4efc4c5781]$date = mysql_query("SELECT DATE_FORMAT(datum, '%d-%m-%Y') AS datum FROM agenda ORDER BY datum DESC"); [/code:1:4efc4c5781]
  • Ook wanneer ik de datumformat tussen quotes zet, blijft de datum steeds 01-01-1970 weergeven. Het maakt niet uit welke datum ik invoer

    ik snap er werkelijk niks van.

    Help!!!!!
  • Je doet niets met de eerste query-string ($date). Dus het is niet gek dat er niets wijzigt als je daar de tip van Financial in verwerkt.

    Weet je zeker dat er in de database juiste gegevens staan?
  • Hier wordt er toch iets mee gedaan?

    [code:1:bea592c767]

    // dit is showNames.php
    <td><span class="style2"><? echo date("d-m-Y", $row->datum);?></span></td>[/code:1:bea592c767]


    Hieronder staat een stukje code wat op een andere pagina uitgevoerd wordt.
    [code:1:bea592c767]

    // dit is insAgenda.php

    $fixeddate = explode("-", $_POST["datum"]);
    $fixeddate = $fixeddate[2] . "-" . $fixeddate[1] . "-" . $fixeddate[0];
    $fixeddate = strtotime($fixeddate);

    $insquery = "INSERT INTO agenda(naam,adres,plaats,telefoon,datum,begintijd,eindtijd,lokatie,srt_feest,opmerking) VALUES('$_POST[naam]','$_POST[adres]','$_POST[plaats]','$_POST[telefoon]','".$fixeddate."','$_POST[begintijd]','$_POST[eindtijd]','$_POST[lokatie]','$_POST[srt_feest]','$_POST[opmerking]')" or die(mysql_error());
    $naam = $_POST[naam];
    $adres = $_POST[adres];
    $adres = $_POST[plaats];
    $datum = $_POST[datum];

    $begintijd = $_POST[begintijd];
    $eindtijd = $_POST[eindtijd];
    $srt_feest = $_POST[srt_feest];
    $string = "$naam";
    [/code:1:bea592c767]

    Help !!!!!!!
  • echo die $row->datum eens. Wat komt daaruit?

    Ik ken die functie DATE_FORMAT(datum, %d-%m-%Y) niet, maar als ik doe lees komt daar al een output in die je zonder de datefunctie van PHP kunt weergeven.
    [edit] hmm, ik zie nu dat je niets met die eerste query doet. Je doet gewoon SELECT * FROM agenda. en daarmee doe je een fetch_object. De waarde $date wordt gewoon ongemoed gelaten
    [/edit]

    date() vereist een integer, die het aantal seconden naar 1 jan 1970 weergeeft. Bij jouw insertquery genereerd je xx-xx-xxxx als datum formaat wat dus geen geldig intiger is. Wanneer date een ongeldig getal krijgt returned date gewoon, de waarde 1 jan 1970.

    Overigens zou ik bij die insertquery ipv $_POST[waarde] $_POST['waarde'] gebruiken. Wen je ook aan om alleen <?php te gebruiekn ipv enkel <?.
  • Quote ipv wijzig..
  • Als ik $_POST['waarde'] gebruik krijg ik een foutmelding terug.

    Foutmelding:
    Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\apache\htdocs
    ew\insagenda.php on line 113

    Dus maar niet tussen enkele quotes zetten?.

    Maar goed waar het om gaat werkt nog steeds niet. Je zou denken dat het toch niet zo moeilijk moest zijn.

    Ik wil alleen agenda items invoeren in een database middels een formulier. Vervolgens wil ik die lijst met agenda items terug projecteren op mijn scherm. Dan moet moet ie gesorteerd jongste datum staan. Maar dat wil dus niet lukken.

    Iemand iedeen??

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.