zoeken op datum werkt verkeerd
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)
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
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>
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
Hoe staan data in je database? Toch wel als echt date (datetime) veld?
Code (php)
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
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
}
?>
// 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 -
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.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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
}
?>
// 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
}
?>