zoeken op datum werkt verkeerd

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Inge V

Inge V

22/05/2012 15:28:02
Quote Anchor link
Hoi, ik hoop dat iemand mij kan helpen.
Ik wil dat je op een pagina goed kunt zoeken op datum. Nu kan je in een dropdownmenu de dag, maand en jaar kiezen. Bij deze keuze worden dan de resulaten die uit een database gehaald worden weergeven, alleen gebeurt dit nog niet goed. Als ik bijvoorbeeld 01, januari, 2012 kies, dan wordt er gezocht naar 01 of 01 of 2012. Het is de bedoeling dat er gezocht wordt naar 2012-01-01..

Dit is tot nu toe mijn script:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
session_start();
include ("include/config.php");

if (empty ($_POST))
{

?>

<form action="" method="post">
    <table>
        <tr>
            <td>Datum:</td>
            <?php

echo "<td><select name=\"dag\">";
for ($i = 1; $i <= 31; $i++)
{

    echo "<option value='" . $i . "'>" . $i . "</option>";
}

echo "</select> ";


$months = array('', 'Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni',
    'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December');

echo "<select name=\"maand\">";
for ($i = 1; $i <= 12; $i++)
{

    echo "<option value='" . $i . "'>" . $months[$i] . "</option>";
}

echo "</select> ";


$startyear = date("2012");
$endyear = date("Y") + 20;

echo "<select name=\"jaar\">";
for ($i = $startyear; $i <= $endyear; $i++)
{

    echo "<option value='" . $i . "'>" . $i . "</option>";
}

echo "</select></td> ";
?>

        <tr>
            <td><input type="submit" value="zoek" name="zoek"/></td>
            <td><input type="button" value="Terug" onclick="javascript:history.back();"/></td>
        </tr>
<?php
}
if (isset($_POST['zoek']))
{

    $zoekquery = "SELECT * FROM aantalresultaten WHERE datum LIKE '%" . $_POST["dag"] . "%' OR datum LIKE '%" . $_POST["maand"] . "%' OR datum LIKE '%" . $_POST["jaar"] . "%'";
    $result = mysql_query($zoekquery) or die(mysql_error());
    $aantal = mysql_num_rows($result);

    //controleren of er records zijn gevonden
    if ($aantal == 0)
    {

        //nee
        echo ("Helaas, niks gevonden met <b>" . $_POST["dag"] . '-' . $_POST["maand"] . '-' . $_POST["jaar"] ."</b><br>");

    }
else
    {
        //ja
        echo ("<b>$aantal resultaten:</b><br>");
        while ($rij = mysql_fetch_array($result))
        {

            echo ("ID: " . $rij['resultaatID'] . "<br>");
            echo ("klas:" . $rij['klas'] . "<br>");
            echo ("docent:" . $rij['docent'] . "<br>");
            echo ("datum:" . $rij['datum'] . "<br>");
            echo ("<form action='result.php' method='post'>
                            <input type='submit' value='bekijken' name='bekijken'/>
                            </form><br><br>"
);


        }
    }
}


?>
    
    </table>
</form>
Gewijzigd op 22/05/2012 15:28:54 door Inge V
 
PHP hulp

PHP hulp

28/12/2024 13:13:58
 
Erwin H

Erwin H

22/05/2012 15:40:06
Quote Anchor link
Hoe staan data in je database? Toch wel als echt date (datetime) veld?
 
- SanThe -

- SanThe -

22/05/2012 18:45:39
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
// FOUT
$startyear = date("2012");
// moet zijn
$startyear = date('Y');
// of
$startyear = 2012;

// kijken of er gepost is
if($_SERVER['REQUEST_METHOD'] == 'POST')
    // kijken of het een geldige datum is
    if(checkdate($_POST["maand"],$_POST["dag"],$_POST["jaar"]))
    {

        // datum in het juiste format zetten
        $zoek_datum = $_POST["jaar"].'-'.$_POST["maand"].'-'.$_POST["dag"];
        $zoekquery = "SELECT * FROM aantalresultaten WHERE datum = '.$zoek_datum.'";
        // query afhandelen
    }
    else
    {
        // ERROR: Ongeldige datum
    }
}

else
{
    // FORMULIER
}
?>
Gewijzigd op 22/05/2012 18:53:50 door - SanThe -
 
Inge V

Inge V

29/05/2012 08:42:49
Quote Anchor link
Dankje SanThe het werkt nu^^
Ik heb alleen nog een klein dingetje. Mijn datum wordt nu 2012-1-1
Hoe kan ik ervoor zorgen dat dit 2012-01-01 wordt? In de database wordt namelijk de datum zo weergeven en alleen met die 0 ervoor kan hij em vinden.
 
- SanThe -

- SanThe -

29/05/2012 10:15:18
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
// kijken of er gepost is
if($_SERVER['REQUEST_METHOD'] == 'POST')
    // kijken of het een geldige datum is
    if(checkdate($_POST["maand"],$_POST["dag"],$_POST["jaar"]))
    {

        // datum in het juiste format zetten
        $zoek_datum = date('Y-m-d', strtotime($_POST["jaar"].'-'.$_POST["maand"].'-'.$_POST["dag"]));
        $zoekquery = "SELECT * FROM aantalresultaten WHERE datum = '" .$zoek_datum. "'";
        // query afhandelen
    }
    else
    {
        // ERROR: Ongeldige datum
    }
}

else
{
    // FORMULIER
}
?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.