datum zoeken in database
Ik heb een scriptje waarmee ik de datum kan invoeren in mijn database, alleen wil ik ook de mogelijkheid om een datum op te zoeken in de database. Het volgende heb ik, maar volgens mij is klopt er iets niet in de $sql en wellicht in de submit (onderaan). Wie-o-wie kan me helpen!
Het volgende scriptje heb ik:
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
<?php
include ("include/dbconnect.php");
$datum = $_POST['iJaar'] . '-' .$_POST['iMaand'] . '-' .$_POST['iDag'];
if ($submit)
{
$sql="SELECT * FROM $table WHERE $submit = $datum ORDER BY naam ASC";
$result = mysql_query($sql);
$resultsnumber = mysql_numrows($result);
echo "<TABLE BORDER=0>";
echo "Aantal gevonden: <b><font color=#0066CC>$resultsnumber</font></b>";
$alternate = "2";
while ($myrow = mysql_fetch_array($result))
{
$naam = $myrow["naam"];
$id = $myrow["id"];
if ($alternate == "1") {
$color = "#D8E0E4";
$alternate = "2";
}
else {
$color = "#E6EEF2";
$alternate = "1";
}
echo "<TR bgcolor=$color><TD><img src=images/bullet.gif> $naam </TD>";
echo "<td><b>>></b><a href='view.php?id=$id'> zie details </a></td>";
}
echo "</TR></TABLE>";
echo "<p>Kijk op <a href='index.php'>Alfabetische volgorde</a> of <a href='$PHP_SELF'>Opnieuw zoeken</a></p>";
}
else
{
?>
<form method="POST" action="<? $PHP_SELF ?>">
<p></p>
<table border="0" cellspacing="2" width="380">
<tr>
<td>Of zoek op geboortedatum:<b></b></td>
</tr>
<tr>
<td valign="top">
<?php
// De variabelen die gevuld worden zijn: $iDag, $iMaand en $iJaar
// Deze code kan je zo in je formulier zetten
// Geef hier zelf de jaartallen die ingevuld mogen worden in de dropdown
$jaar = range( 2000, 2010 ); // Voorbeeld 2000 tot en met 2010
// Array met de namen van de maanden
$maand = array( "Januari", "Februari", "Maart", "April", "Mei", "Juni",
"Juli", "Augustus", "September", "Oktober", "November", "December");
// Dropdown voor de dagen
echo '<select name="iDag">';
for($i=1; $i<=31; $i++)
{
echo '<option value="' . $i . '">' . $i . '</option>';
}
echo '</select>';
// Dropdown voor de maanden
$count = count($maand);
echo '<select name="iMaand">';
for($i=1; $i<=$count; $i++)
{
echo '<option value="' . $i . '">' . $maand[$i-1] . '</option>';
}
echo '</select>';
// Dropdown voor de jaren
$count = count($jaar);
echo '<select name="iJaar">';
for($i=1; $i<=$count; $i++)
{
echo '<option value="' . $jaar[$i-1] . '">' . $jaar[$i-1] . '</option>';
}
echo '</select>';
?>
</td>
</tr>
<tr>
<td>
<input type="Submit" class="button" name="submit" value="Zoeken">
</td>
</tr>
</table>
</form>
<?
}
?>
include ("include/dbconnect.php");
$datum = $_POST['iJaar'] . '-' .$_POST['iMaand'] . '-' .$_POST['iDag'];
if ($submit)
{
$sql="SELECT * FROM $table WHERE $submit = $datum ORDER BY naam ASC";
$result = mysql_query($sql);
$resultsnumber = mysql_numrows($result);
echo "<TABLE BORDER=0>";
echo "Aantal gevonden: <b><font color=#0066CC>$resultsnumber</font></b>";
$alternate = "2";
while ($myrow = mysql_fetch_array($result))
{
$naam = $myrow["naam"];
$id = $myrow["id"];
if ($alternate == "1") {
$color = "#D8E0E4";
$alternate = "2";
}
else {
$color = "#E6EEF2";
$alternate = "1";
}
echo "<TR bgcolor=$color><TD><img src=images/bullet.gif> $naam </TD>";
echo "<td><b>>></b><a href='view.php?id=$id'> zie details </a></td>";
}
echo "</TR></TABLE>";
echo "<p>Kijk op <a href='index.php'>Alfabetische volgorde</a> of <a href='$PHP_SELF'>Opnieuw zoeken</a></p>";
}
else
{
?>
<form method="POST" action="<? $PHP_SELF ?>">
<p></p>
<table border="0" cellspacing="2" width="380">
<tr>
<td>Of zoek op geboortedatum:<b></b></td>
</tr>
<tr>
<td valign="top">
<?php
// De variabelen die gevuld worden zijn: $iDag, $iMaand en $iJaar
// Deze code kan je zo in je formulier zetten
// Geef hier zelf de jaartallen die ingevuld mogen worden in de dropdown
$jaar = range( 2000, 2010 ); // Voorbeeld 2000 tot en met 2010
// Array met de namen van de maanden
$maand = array( "Januari", "Februari", "Maart", "April", "Mei", "Juni",
"Juli", "Augustus", "September", "Oktober", "November", "December");
// Dropdown voor de dagen
echo '<select name="iDag">';
for($i=1; $i<=31; $i++)
{
echo '<option value="' . $i . '">' . $i . '</option>';
}
echo '</select>';
// Dropdown voor de maanden
$count = count($maand);
echo '<select name="iMaand">';
for($i=1; $i<=$count; $i++)
{
echo '<option value="' . $i . '">' . $maand[$i-1] . '</option>';
}
echo '</select>';
// Dropdown voor de jaren
$count = count($jaar);
echo '<select name="iJaar">';
for($i=1; $i<=$count; $i++)
{
echo '<option value="' . $jaar[$i-1] . '">' . $jaar[$i-1] . '</option>';
}
echo '</select>';
?>
</td>
</tr>
<tr>
<td>
<input type="Submit" class="button" name="submit" value="Zoeken">
</td>
</tr>
</table>
</form>
<?
}
?>
$sql="SELECT * FROM $table WHERE $submit = '$datum' ORDER BY naam ASC";
Code (php)
1
2
3
2
3
Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in /var/www/html/test/pedigree/search_datum.php on line 11
Aantal gevonden:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/html/test/pedigree/search_datum.php on line 17
Aantal gevonden:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/html/test/pedigree/search_datum.php on line 17
Doe dan niet $submit = '$datum' maar kolomnaam = '$datum'
klinkt misschien heel dom (zal wel), maar kolomnaam?
klinkt misschien heel dom (zal wel), maar kolomnaam?
tabel "personeel":
id | voornaam | achternaam
Hierin zijn 'id', 'voornaam' en 'achternaam' kolomnamen.
yepz, ik heb het al gevonden thnx... probleem dus opgelost. Alleen nu krijg ik steeds als ik $datum vermeld de engelse datumaanduiding jaar-maand-dag. Weet je ook hoe ik dit in het NL krijg? Ik heb al op het forum gekeken, maar volgens mij is het dat steeds niet (alleen huidige tijd staat dan goed)
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html
SELECT DATE_FORMAT(date, '%W %M %Y') AS datum_opgemaakt FROM $table
bedankt voor je tip. Alleen moet ik dit in SQL (phpmyadmin) draaien? en datum_opgemaakt, wat bedoel je daar precies mee?
Dit is een stukje SQL die je dus gewoon in je query kan opnemen, zie de handleiding.
Ik heb namelijk nu:
hoe zet ik dit ertussen?
moet zetten?
Ik heb namelijk nu dit:
Code (php)
1
2
2
$result = mysql_query("SELECT * FROM $table WHERE id=$id",$db);
$links = mysql_fetch_array($result);
$links = mysql_fetch_array($result);
Merci!
$result = mysql_query("SELECT *, DATE_FORMAT(date, '%W %M %Y') AS datum_opgemaakt FROM $table WHERE id=$id",$db);
$links = mysql_fetch_array($result);
en dan bv.
echo $links['datum_opgemaakt '];
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$query = "
SELECT
DATE_FORMAT(date, '%W %M %Y') AS datumopmaak
FROM
".$table."
WHERE
id = ".$id; // variabelen buiten quotes
$result = mysql_query($query);
if(!$result){
echo 'Mislukt: '.mysql_error().'<br />';
echo 'Met query: '.$query;
die(); // kan netter
}
$links = mysql_fetch_array($result);
?>
$query = "
SELECT
DATE_FORMAT(date, '%W %M %Y') AS datumopmaak
FROM
".$table."
WHERE
id = ".$id; // variabelen buiten quotes
$result = mysql_query($query);
if(!$result){
echo 'Mislukt: '.mysql_error().'<br />';
echo 'Met query: '.$query;
die(); // kan netter
}
$links = mysql_fetch_array($result);
?>
19th August 2004, hoe krijg ik dit in het Nederlands?
Frank hamert wel op foutafhandeling...al meerdere keren gezien hier.
wel makkelijk om te kijken wat voor fout je hebt staan in je query. Merci Frank!