Op datums sorteren.
Ik heb weer een vraagje waar ik zelf niet echt uitkom.
Ik wil 2 datums kunnen kiezen en dan op een button drukken en dat ie dan vanaf bijv. 1 november t/m 10 november laat zien wat er in de database staat.
Ik heb nu eens zitten puzzelen maar mijn while loop laat hij nog niet eens zien.
Kan iemand mij vertellen of dit kan en een beetje opweg helpen.
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
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
echo'
<h1>Overzicht</h1>
<hr>
Totaal verdiend: <b>'. $result_totaal.'</b> <br>
Totaal aantal uur: <b>'. $totaal.'</b> <br>
Totaal aantal pauze: <b>'. $totaalpauze.' min</b> <br>
<hr>
<b>Toevoegen: <a href="formulier.php">klik</a>.</b>
<hr>
<b>Voor de duidelijkheid:</b> Als bij <u>aantal uur</u> 0.25 staat betekent dit 15 min werktijd, bij 0.30 30 min werktijd en bij 0.75 45 min werktijd.
<br><br>
<b>Sorteren van:
<select name="datumbegin">
<option value=" "> </option>
'.
$datumbegin = 1;
while ($datumbegin <= 28)
{
echo "<option>" . $datumbegin . "</option>";
$datumbegin++;
}
.'</select>
<table border="0" bgcolor="blue" cellpadding="1px" cellspacing="1px" width="800px">
<tr>
<td bgcolor="white"><b>Dag</b></td>
<td bgcolor="white"><b>Datum</b></td>
<td bgcolor="white"><b>Begintijd</b></td>
<td bgcolor="white"><b>Eindtijd</b></td>
<td bgcolor="white"><b>Aantal Uur</b></td>
<td bgcolor="white"><b>Pauze</b></td>
<td bgcolor="white"><b>Verander</b></td>
<td bgcolor="white"><b>Verwijder</b></td>
</tr>';
<h1>Overzicht</h1>
<hr>
Totaal verdiend: <b>'. $result_totaal.'</b> <br>
Totaal aantal uur: <b>'. $totaal.'</b> <br>
Totaal aantal pauze: <b>'. $totaalpauze.' min</b> <br>
<hr>
<b>Toevoegen: <a href="formulier.php">klik</a>.</b>
<hr>
<b>Voor de duidelijkheid:</b> Als bij <u>aantal uur</u> 0.25 staat betekent dit 15 min werktijd, bij 0.30 30 min werktijd en bij 0.75 45 min werktijd.
<br><br>
<b>Sorteren van:
<select name="datumbegin">
<option value=" "> </option>
'.
$datumbegin = 1;
while ($datumbegin <= 28)
{
echo "<option>" . $datumbegin . "</option>";
$datumbegin++;
}
.'</select>
<table border="0" bgcolor="blue" cellpadding="1px" cellspacing="1px" width="800px">
<tr>
<td bgcolor="white"><b>Dag</b></td>
<td bgcolor="white"><b>Datum</b></td>
<td bgcolor="white"><b>Begintijd</b></td>
<td bgcolor="white"><b>Eindtijd</b></td>
<td bgcolor="white"><b>Aantal Uur</b></td>
<td bgcolor="white"><b>Pauze</b></td>
<td bgcolor="white"><b>Verander</b></td>
<td bgcolor="white"><b>Verwijder</b></td>
</tr>';
Bij voorbaat dank!
bijv.
$datum1
$datum2
SELECT * FROM table
WHERE datum
BETWEEN $datum1 AND $datum2
ORDER BY datum ASC (of DESC)
Dus ik wil alleen de datums tussen 1 november 2010 en 10 november 2010. En als je dan op de button druk hij dan die datums ertussen laat zien.
<form action="pagina.php" method="post">
<input type="text" name="datum1" /> <br />
<input type="text" name="datum2" /> <br />
<input type="submit" value="Verder" />
</form>
Met $_POST["datum1"] en $_POST["datum2"] kan je data ophalen en ze in je sql zetten.
Bedoel je dit?
Je moet wel dat de data die er tussen staat in de database hebben staan anders komen ze er niet uit :)
Ik haal met een loop alle datums uit mijn database en ik kies 2 data's. Ik druk op verzend of een button en die roept dan die query aan dat hij tussen die 2 data's die data ophaalt en op het scherm vertoont.
Alleen is dit wel mogelijk.
Je hebt ook wel eens iets zo van toon alleen deze maand met een dropdown box
Alleen ik wil zelf kunnen kiezen van wanneer tot wanneer ik he wil laten zien.
En jaah ik heb ook al zitten denken want ik heb niet elke dag data voor in de database dus misschien is het lastiger.
$sql = "SELECT * FROM table";
$query = mysql_query($sql);
echo "datum";
echo "<select>"
while ($row = mysql_fetch_array($query)) {
echo "<option>" . $row[datum] . "</option>;
};
echo "</select>";
Zoiets dan uit mijn hoofd :P
Kijk ik wil zegmaar onder (regel 49) Als bij <u> aantal uur</u> ....
Daar die dropdownbox laten komen maar alles staat al in echo en als ik daar dan mijn while loop in zet weergeeft die hem niet en krijg ik een blanco pagina terug.
Terwijl hij het op een andere pagina wel doet.
Plus ik zou niet precies weten hoe ik dit moet doen die dropdownbox de rest gaat wel lukken denk 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
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Overzicht</title>
</head>
<body>
<?php
// connecten met database
include("config.inc.php");
// Selecteer en tel de kolom verdiend met elkaar op maar alleen als uit diezelfde rij de kolom betaald ja is.
$select_betaald= "SELECT SUM(verdiend) AS verdiend FROM werkoverzicht WHERE betaald = 'ja' ";
$query_betaald = mysql_query($select_betaald);
$result_betaald = mysql_fetch_assoc($query_betaald);
// Selecteer en tel de kolom verdiend met elkaar op maar alleen als uit diezelfde rij de kolom betaald nee is.
$select_nietbetaald= "SELECT SUM(verdiend) AS verdiend FROM werkoverzicht WHERE betaald = 'nee' ";
$query_nietbetaald = mysql_query($select_nietbetaald);
$result_nietbetaald = mysql_fetch_assoc($query_nietbetaald);
$select2 = mysql_query("SELECT SUM(aantaluur) AS aantaluren FROM werkoverzicht");
$row = mysql_fetch_assoc($select2);
$totaal = $row['aantaluren'];
$select3 = mysql_query("SELECT SUM(pauze) AS pauzes FROM werkoverzicht");
$rowpauze = mysql_fetch_assoc($select3);
$totaalpauze = $rowpauze['pauzes'];
//////////////////////////
//// Let op: Omdat er mysql_fetch_assoc is gebruikt, word het resultaat alleen maar met een array uitgespuugd.
/////////////////////////
// Wanneer je wel betaald en niet betaald met elkaar optelt krijg je het totaal :) goed he?
$result_totaal = $result_betaald["verdiend"]+$result_nietbetaald["verdiend"];
// Nou dan laten we de resultaten even allemaal zien op de pagina, ochjah dump het maar in een echo!
echo'
<h1>Overzicht</h1>
<hr>
Totaal verdiend: <b>€'. $result_totaal.'</b> <br>
Totaal aantal uur: <b>'. $totaal.'</b> <br>
Totaal aantal pauze: <b>'. $totaalpauze.' min</b> <br>
<hr>
<b>Toevoegen: <a href="formulier.php">klik</a>.</b>
<hr>
<b>Voor de duidelijkheid:</b> Als bij <u>aantal uur</u> .25 staat betekent dit 15 min werktijd, bij .30 30 min werktijd en bij .75 45 min werktijd.
<br><br>
<table border="0" bgcolor="blue" cellpadding="1px" cellspacing="1px" width="800px">
<tr>
<td bgcolor="white"><b>Dag</b></td>
<td bgcolor="white"><b>Datum</b></td>
<td bgcolor="white"><b>Begintijd</b></td>
<td bgcolor="white"><b>Eindtijd</b></td>
<td bgcolor="white"><b>Aantal Uur</b></td>
<td bgcolor="white"><b>Pauze</b></td>
<td bgcolor="white"><b>Verander</b></td>
<td bgcolor="white"><b>Verwijder</b></td>
</tr>';
// Hierboven is al de eerste rij van een tabel gemaakt voor het op de pagina te laten zien.
// Hieronder komt de rest van de tabel, Maar dan moeten we eerst alles uit de database halen.
$query2 = "SELECT * FROM werkoverzicht ORDER BY datum_jaar,datum_dag,datum_maand";
$resultaat = mysql_query($query2);
// We zetten het in een while dan haalt hij herhaaldelijk 1 voor 1 rij uit zijn database totdat alles eruit is gelezen.
while($record = mysql_fetch_object($resultaat))
{
echo'
<tr>
<td bgcolor="white">'.$record->dag.'</td>
<td bgcolor="white">'.$record->datum_dag.' '.$record->datum_maand.' '.$record->datum_jaar.'</td>
<td bgcolor="white">'.$record->begintijd.':'.$record->uurdeelb. '</td>
<td bgcolor="white">'.$record->eindtijd.':'.$record->uurdeele.'</td>
<td bgcolor="white">'.$record->aantaluur.'</td>
<td bgcolor="white">'.$record->pauze.' min</td>
<td bgcolor="white"><a href="formulier.php?pag=update&id='.$record->id.'"> Klik </a></td>
<td bgcolor="white"><a href="verwerk.php?pag=delete&id='.$record->id.'"> Weg! </a></td>
</tr>
';
}
// En nog even de tabel op de pagina zelf sluiten
echo'</table>';
?>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Overzicht</title>
</head>
<body>
<?php
// connecten met database
include("config.inc.php");
// Selecteer en tel de kolom verdiend met elkaar op maar alleen als uit diezelfde rij de kolom betaald ja is.
$select_betaald= "SELECT SUM(verdiend) AS verdiend FROM werkoverzicht WHERE betaald = 'ja' ";
$query_betaald = mysql_query($select_betaald);
$result_betaald = mysql_fetch_assoc($query_betaald);
// Selecteer en tel de kolom verdiend met elkaar op maar alleen als uit diezelfde rij de kolom betaald nee is.
$select_nietbetaald= "SELECT SUM(verdiend) AS verdiend FROM werkoverzicht WHERE betaald = 'nee' ";
$query_nietbetaald = mysql_query($select_nietbetaald);
$result_nietbetaald = mysql_fetch_assoc($query_nietbetaald);
$select2 = mysql_query("SELECT SUM(aantaluur) AS aantaluren FROM werkoverzicht");
$row = mysql_fetch_assoc($select2);
$totaal = $row['aantaluren'];
$select3 = mysql_query("SELECT SUM(pauze) AS pauzes FROM werkoverzicht");
$rowpauze = mysql_fetch_assoc($select3);
$totaalpauze = $rowpauze['pauzes'];
//////////////////////////
//// Let op: Omdat er mysql_fetch_assoc is gebruikt, word het resultaat alleen maar met een array uitgespuugd.
/////////////////////////
// Wanneer je wel betaald en niet betaald met elkaar optelt krijg je het totaal :) goed he?
$result_totaal = $result_betaald["verdiend"]+$result_nietbetaald["verdiend"];
// Nou dan laten we de resultaten even allemaal zien op de pagina, ochjah dump het maar in een echo!
echo'
<h1>Overzicht</h1>
<hr>
Totaal verdiend: <b>€'. $result_totaal.'</b> <br>
Totaal aantal uur: <b>'. $totaal.'</b> <br>
Totaal aantal pauze: <b>'. $totaalpauze.' min</b> <br>
<hr>
<b>Toevoegen: <a href="formulier.php">klik</a>.</b>
<hr>
<b>Voor de duidelijkheid:</b> Als bij <u>aantal uur</u> .25 staat betekent dit 15 min werktijd, bij .30 30 min werktijd en bij .75 45 min werktijd.
<br><br>
<table border="0" bgcolor="blue" cellpadding="1px" cellspacing="1px" width="800px">
<tr>
<td bgcolor="white"><b>Dag</b></td>
<td bgcolor="white"><b>Datum</b></td>
<td bgcolor="white"><b>Begintijd</b></td>
<td bgcolor="white"><b>Eindtijd</b></td>
<td bgcolor="white"><b>Aantal Uur</b></td>
<td bgcolor="white"><b>Pauze</b></td>
<td bgcolor="white"><b>Verander</b></td>
<td bgcolor="white"><b>Verwijder</b></td>
</tr>';
// Hierboven is al de eerste rij van een tabel gemaakt voor het op de pagina te laten zien.
// Hieronder komt de rest van de tabel, Maar dan moeten we eerst alles uit de database halen.
$query2 = "SELECT * FROM werkoverzicht ORDER BY datum_jaar,datum_dag,datum_maand";
$resultaat = mysql_query($query2);
// We zetten het in een while dan haalt hij herhaaldelijk 1 voor 1 rij uit zijn database totdat alles eruit is gelezen.
while($record = mysql_fetch_object($resultaat))
{
echo'
<tr>
<td bgcolor="white">'.$record->dag.'</td>
<td bgcolor="white">'.$record->datum_dag.' '.$record->datum_maand.' '.$record->datum_jaar.'</td>
<td bgcolor="white">'.$record->begintijd.':'.$record->uurdeelb. '</td>
<td bgcolor="white">'.$record->eindtijd.':'.$record->uurdeele.'</td>
<td bgcolor="white">'.$record->aantaluur.'</td>
<td bgcolor="white">'.$record->pauze.' min</td>
<td bgcolor="white"><a href="formulier.php?pag=update&id='.$record->id.'"> Klik </a></td>
<td bgcolor="white"><a href="verwerk.php?pag=delete&id='.$record->id.'"> Weg! </a></td>
</tr>
';
}
// En nog even de tabel op de pagina zelf sluiten
echo'</table>';
?>
</body>
</html>
Toevoeging op 29/12/2010 12:32:55:
Oke hij laat de dropdownboxjes nu zien maar nu moet hij de data weergeven als ik een druk op knop geef.
Met welke actie doe ik dat?