Sorteren
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$array = array();
$fin_q = mysql_query("SELECT * FROM financieel WHERE Datum LIKE '%-". $filterjaar ."%' AND Kwartaal LIKE '%". $filterkwartaal ."%' AND BTW='19' ORDER BY ID ASC") or die(mysql_error());
while($fin = mysql_fetch_object($fin_q)){
$array[] = $fin->ID ."|". round(str_replace(",", ".", $fin->Bedrag), 2) ."|". round(((str_replace(",", ".", $fin->Bedrag)) * (($fin->BTW / 100))), 2) ."|". $fin->BTW;
}
if($_GET['sort'] == 1){
$array = sorteerLijst($array, $_GET['sort']);
}
elseif($_GET['sort']){
$array = sorteerLijst($array, $_GET['sort'], null);
}
else{
$array = sorteerLijst($array, 1, null);
}
for($index=0; $index < sizeof($array); $index++){
$los = explode("|", $array[$index]);
}
?>
$array = array();
$fin_q = mysql_query("SELECT * FROM financieel WHERE Datum LIKE '%-". $filterjaar ."%' AND Kwartaal LIKE '%". $filterkwartaal ."%' AND BTW='19' ORDER BY ID ASC") or die(mysql_error());
while($fin = mysql_fetch_object($fin_q)){
$array[] = $fin->ID ."|". round(str_replace(",", ".", $fin->Bedrag), 2) ."|". round(((str_replace(",", ".", $fin->Bedrag)) * (($fin->BTW / 100))), 2) ."|". $fin->BTW;
}
if($_GET['sort'] == 1){
$array = sorteerLijst($array, $_GET['sort']);
}
elseif($_GET['sort']){
$array = sorteerLijst($array, $_GET['sort'], null);
}
else{
$array = sorteerLijst($array, 1, null);
}
for($index=0; $index < sizeof($array); $index++){
$los = explode("|", $array[$index]);
}
?>
zorgt ervoor dat ik een bedrag kan zien in de lijst. Alleen het probleem is dat hij er maar 1 pakt. Een beter voorbeeld vindt je hier: http://www.keenweb.nl/overzicht.jpg .
Zoals je ziet in de database zie je 2 keer bij Kwartaal 'eerste staan'. Echter in het lijstje geeft hij als resultaat maar 1 keer weer. Dus 5,99 ipv 11,98.
Mijn vraag is eigenlijk, hoe kan ik ervoor zorgen dat bij deze code round(str_replace(",", ".", $fin->Bedrag), 2) het bedrag wordt doorgeteld bij alles waarbij de kolom Kwartaal bijv de waarde eerste staat. Volgens mij pakt hij nu alleen de eerste waarde die hij tegen komt en daarna stopt het met tellen.
Alvast bedankt.
Gewijzigd op 01/01/1970 01:00:00 door Paul IJmker
Quote:
Die kun je dus weer weggooien...Nu heb ik iets anders bedacht en dat is dat ik een kolom kwartaal toegevoegd heb
Gebruik de functies YEAR en QUARTER om het jaartal en kwartaal te vergelijken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
SELECT
*
FROM
financieel
WHERE
YEAR(Datum) = $filterjaar
AND
QUARTER(Datum) = $filterkwartaal
AND
BTW = '19'
ORDER BY
ID ASC
*
FROM
financieel
WHERE
YEAR(Datum) = $filterjaar
AND
QUARTER(Datum) = $filterkwartaal
AND
BTW = '19'
ORDER BY
ID ASC
Daarbij is sorteren op id volkomen zinloos, een id heeft namelijk geen enkele betekenis. Ook niet als jij vindt van wel, een id kan namelijk geen betekenis hebben. Je sorteert nu dus op een waardeloos gegeven, een min of meer random gegeven. Niet doen dus, kan alleen maar voor problemen zorgen.
Wanneer jij bedragen wilt opmaken, gebruik dan number_format() dat is 100x handiger dan een str_replace misbruiken voor zo iets. Bedenk wel dat een bedrag dat je hebt opgemaakt met komma's e.d. een string wordt en dus geen integer of decimaal meer is. Optellen e.d. kan dus niet meer.
pgFrank schreef op 18.04.2008 01:22:
Gebruik de functies YEAR en QUARTER om het jaartal en kwartaal te vergelijken.
Daarbij is sorteren op id volkomen zinloos, een id heeft namelijk geen enkele betekenis. Ook niet als jij vindt van wel, een id kan namelijk geen betekenis hebben. Je sorteert nu dus op een waardeloos gegeven, een min of meer random gegeven. Niet doen dus, kan alleen maar voor problemen zorgen.
Wanneer jij bedragen wilt opmaken, gebruik dan number_format() dat is 100x handiger dan een str_replace misbruiken voor zo iets. Bedenk wel dat een bedrag dat je hebt opgemaakt met komma's e.d. een string wordt en dus geen integer of decimaal meer is. Optellen e.d. kan dus niet meer.
Quote:
Die kun je dus weer weggooien...Nu heb ik iets anders bedacht en dat is dat ik een kolom kwartaal toegevoegd heb
Gebruik de functies YEAR en QUARTER om het jaartal en kwartaal te vergelijken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
SELECT
*
FROM
financieel
WHERE
YEAR(Datum) = $filterjaar
AND
QUARTER(Datum) = $filterkwartaal
AND
BTW = '19'
ORDER BY
ID ASC
*
FROM
financieel
WHERE
YEAR(Datum) = $filterjaar
AND
QUARTER(Datum) = $filterkwartaal
AND
BTW = '19'
ORDER BY
ID ASC
Daarbij is sorteren op id volkomen zinloos, een id heeft namelijk geen enkele betekenis. Ook niet als jij vindt van wel, een id kan namelijk geen betekenis hebben. Je sorteert nu dus op een waardeloos gegeven, een min of meer random gegeven. Niet doen dus, kan alleen maar voor problemen zorgen.
Wanneer jij bedragen wilt opmaken, gebruik dan number_format() dat is 100x handiger dan een str_replace misbruiken voor zo iets. Bedenk wel dat een bedrag dat je hebt opgemaakt met komma's e.d. een string wordt en dus geen integer of decimaal meer is. Optellen e.d. kan dus niet meer.
Het volgende is het geval. De datum wordt opgeslagen als een Varchar. Ik heb gekeken maar ik moet de datum omzetten naar een DATE als ik het goed begrijp.
Nu heb ik dit gedaan.
Ik heb de onderstaande code om een datum toe te voegen
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
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
<?php
if(@$_GET['actie'] == "toevoegen"){
$form = true;
if($_POST){
$sql = mysql_query("INSERT INTO financieel VALUES ('',
'". $_POST['date'] ."',
'". $_POST['factuurnr'] ."',
'". $_POST['omschrijving'] ."',
'af',
'',
'". $_POST['bedrag'] ."',
'". $_POST['btw'] ."')");
if($sql){
mededeling("De uitgave is toegevoegd aan het financieën overzicht");
$overzicht = true;
$form = false;
}
else{
mededeling("Er ging iets fout tijdens het toevoegen van deze uitgave.");
$form = true;
}
}
if($form == true){
echo"<form method='post'>
<table cellspacing='0' cellpadding='4' width='100%'>
<tr class='donker'>
<td colspan='2'><b>Een uitgave toevoegen:</b></td>
</tr>
<tr>
<td>Factuurnummer:</td>
<td><input size='37' type='text' value='". $_POST['factuurnr'] ."' name='factuurnr'></td>
</tr>
<tr>
<td>Facturdatum:</td>
<td><input size='37' type='text' value='". $_POST['date'] ."' name='date'></td>
</tr>
<tr>
<td>Uitgave omschrijving:</td>
<td><textarea name='omschrijving' cols='35' rows='5'></textarea></td>
</tr>
<tr>
<td>Bedrag:</td>
<td>€ <input size='6' type='text' value='". $_POST['bedrag'] ."' name='bedrag'></td>
</tr>
<tr>
<td>BTW:</td>
<td> <select name='btw'>
<option value='19'>19%</option>
<option value='6'>6%</option>
<option value='0'>0%</option>
</select></td>
</tr>
</table>
<br> <br>
<center><input type='submit' name='submit' value='Uitgave toevoegen'></center>
</form>";
}
}
?>
if(@$_GET['actie'] == "toevoegen"){
$form = true;
if($_POST){
$sql = mysql_query("INSERT INTO financieel VALUES ('',
'". $_POST['date'] ."',
'". $_POST['factuurnr'] ."',
'". $_POST['omschrijving'] ."',
'af',
'',
'". $_POST['bedrag'] ."',
'". $_POST['btw'] ."')");
if($sql){
mededeling("De uitgave is toegevoegd aan het financieën overzicht");
$overzicht = true;
$form = false;
}
else{
mededeling("Er ging iets fout tijdens het toevoegen van deze uitgave.");
$form = true;
}
}
if($form == true){
echo"<form method='post'>
<table cellspacing='0' cellpadding='4' width='100%'>
<tr class='donker'>
<td colspan='2'><b>Een uitgave toevoegen:</b></td>
</tr>
<tr>
<td>Factuurnummer:</td>
<td><input size='37' type='text' value='". $_POST['factuurnr'] ."' name='factuurnr'></td>
</tr>
<tr>
<td>Facturdatum:</td>
<td><input size='37' type='text' value='". $_POST['date'] ."' name='date'></td>
</tr>
<tr>
<td>Uitgave omschrijving:</td>
<td><textarea name='omschrijving' cols='35' rows='5'></textarea></td>
</tr>
<tr>
<td>Bedrag:</td>
<td>€ <input size='6' type='text' value='". $_POST['bedrag'] ."' name='bedrag'></td>
</tr>
<tr>
<td>BTW:</td>
<td> <select name='btw'>
<option value='19'>19%</option>
<option value='6'>6%</option>
<option value='0'>0%</option>
</select></td>
</tr>
</table>
<br> <br>
<center><input type='submit' name='submit' value='Uitgave toevoegen'></center>
</form>";
}
}
?>
Maar in de database geeft hij telkens de waarde 0000-00-00 weer. Hoe kan ik dus een datum toevoegen zodat hij dit wel goed opslaat.
Alvast bedankt
Gewijzigd op 01/01/1970 01:00:00 door Paul IJmker
Quote:
Dat heb je heel goed gezien! Dit betekent dan automatisch ook dat je data in het formaat 'yyyy-mm-dd' in de database op moet slaan, dat is namelijk het enige juiste formaat voor een datum...De datum wordt opgeslagen als een Varchar. Ik heb gekeken maar ik moet de datum omzetten naar een DATE als ik het goed begrijp.
Verder mag je nooit, maar dan ook echt nooit, POST variabelen direct in je queries gebruiken! Je zult ze altijd eerst moeten beveiligen met bijvoorbeeld mysql_real_escape_string(). Daarnaast zou je in het geval van een datum met checkdate() eerst nog willen controleren of het wel een geldige datum is. MySQL geeft daar namelijk geen foutmelding op en zal bij een foute datum gewoon 0000-00-00 invoeren. Gevolg: corrupte data...
Paul IJmker schreef op 18.04.2008 12:20:
Dat komt omdat je 's werelds slechtste en meest onbetrouwbare database gebruikt, dat is dus je eigen keuze. Vrijwel iedere database is beter dan MySQL, zelf resultaten verzinnen mag een database helemaal nooit doen. En dat is precies wat MySQL wél doet...Maar in de database geeft hij telkens de waarde 0000-00-00 weer. Hoe kan ik dus een datum toevoegen zodat hij dit wel goed opslaat.
Je kunt de database eerst goed gaan configureren, maar ook dat geeft je maar weinig garanties, die instellingen zijn zeer eenvoudig weer naar de bliksem te helpen. Jij moet dus eigenlijk de ontbrekende delen van de database gaan bouwen, voor zover mogelijk, om nog enigzins betrouwbare resultaten te krijgen. Er is echter helemaal niemand die kan garanderen dat de data die in de database staat, ook de data is die jij wilde opslaan. Daar kan bij MySQL altijd een verschil tussen zitten.
Sterkte!
Ps. Kies voortaan wel de juiste datatypes, er bestaat meer dan een INT of VARCHAR.
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
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
<?php
if(@$_GET['actie'] == "toevoegen"){
$form = true;
if($_POST)
{
$datum = date("Ymd");
$sql = mysql_query("INSERT INTO financieel VALUES ('',
'". $datum ."',
'". $_POST['factuurnr'] ."',
'". $_POST['omschrijving'] ."',
'af',
'',
'". $_POST['bedrag'] ."',
'". $_POST['btw'] ."')");
if($sql){
mededeling("De uitgave is toegevoegd aan het financieën overzicht");
$overzicht = true;
$form = false;
}
else{
mededeling("Er ging iets fout tijdens het toevoegen van deze uitgave.");
$form = true;
}
}
if($form == true){
echo"<form method='post'>
<table cellspacing='0' cellpadding='4' width='100%'>
<tr class='donker'>
<td colspan='2'><b>Een uitgave toevoegen:</b></td>
</tr>
<tr>
<td>Factuurnummer:</td>
<td><input size='37' type='text' value='". $_POST['factuurnr'] ."' name='factuurnr'></td>
</tr>
<tr>
<td>Facturdatum:</td>
<td><input size='37' type='text' value='". $datum ."' name='date'></td>
</tr>
<tr>
<td>Uitgave omschrijving:</td>
<td><textarea name='omschrijving' cols='35' rows='5'></textarea></td>
</tr>
<tr>
<td>Bedrag:</td>
<td>€ <input size='6' type='text' value='". $_POST['bedrag'] ."' name='bedrag'></td>
</tr>
<tr>
<td>BTW:</td>
<td> <select name='btw'>
<option value='19'>19%</option>
<option value='6'>6%</option>
<option value='0'>0%</option>
</select></td>
</tr>
</table>
<br> <br>
<center><input type='submit' name='submit' value='Uitgave toevoegen'></center>
</form>";
}
}
?>
if(@$_GET['actie'] == "toevoegen"){
$form = true;
if($_POST)
{
$datum = date("Ymd");
$sql = mysql_query("INSERT INTO financieel VALUES ('',
'". $datum ."',
'". $_POST['factuurnr'] ."',
'". $_POST['omschrijving'] ."',
'af',
'',
'". $_POST['bedrag'] ."',
'". $_POST['btw'] ."')");
if($sql){
mededeling("De uitgave is toegevoegd aan het financieën overzicht");
$overzicht = true;
$form = false;
}
else{
mededeling("Er ging iets fout tijdens het toevoegen van deze uitgave.");
$form = true;
}
}
if($form == true){
echo"<form method='post'>
<table cellspacing='0' cellpadding='4' width='100%'>
<tr class='donker'>
<td colspan='2'><b>Een uitgave toevoegen:</b></td>
</tr>
<tr>
<td>Factuurnummer:</td>
<td><input size='37' type='text' value='". $_POST['factuurnr'] ."' name='factuurnr'></td>
</tr>
<tr>
<td>Facturdatum:</td>
<td><input size='37' type='text' value='". $datum ."' name='date'></td>
</tr>
<tr>
<td>Uitgave omschrijving:</td>
<td><textarea name='omschrijving' cols='35' rows='5'></textarea></td>
</tr>
<tr>
<td>Bedrag:</td>
<td>€ <input size='6' type='text' value='". $_POST['bedrag'] ."' name='bedrag'></td>
</tr>
<tr>
<td>BTW:</td>
<td> <select name='btw'>
<option value='19'>19%</option>
<option value='6'>6%</option>
<option value='0'>0%</option>
</select></td>
</tr>
</table>
<br> <br>
<center><input type='submit' name='submit' value='Uitgave toevoegen'></center>
</form>";
}
}
?>
Maar nu voegt hij de tijd van vandaag toe. Ik wil een eigen tijd die ik dan weergeef in het formulier opslaan in de database, ik heb echt overal gezocht maar ik heb niets gevonden wat me kan helpen.
Gewijzigd op 01/01/1970 01:00:00 door Paul IJmker
Wat bedoel je met "een eigen tijd"?
ps. Als je niet een huidige datum wilt toevoegen, zul je de datum in je INSERT query in het formaat 'yyyy-mm-dd' moeten hebben staan:
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Jan Koehoorn schreef op 18.04.2008 14:09:
Tijd toevoegen doe je met NOW() CURRENT_TIME()
Wat bedoel je met "een eigen tijd"?
Wat bedoel je met "een eigen tijd"?
Ik wil zelf een datum invoeren, bijvoorbeeld 10-08-2008
Paul IJmker schreef op 18.04.2008 14:11:
Zie de edit in mijn vorige post. Data invoeren in het formaat yyyy-mm-dd dus in jouw geval 2008-08-10.Ik wil zelf een datum invoeren, bijvoorbeeld 10-08-2008
ps. Dit is overigens ook al eerder naar voren gekomen in dit topic...
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?
$datum = date("Ymd");
$sql = mysql_query("INSERT INTO financieel VALUES ('',
'". $datum ."',
'". $_POST['factuurnr'] ."',
'". $_POST['omschrijving'] ."',
'af',
'',
'". $_POST['bedrag'] ."',
'". $_POST['btw'] ."')");
?>
$datum = date("Ymd");
$sql = mysql_query("INSERT INTO financieel VALUES ('',
'". $datum ."',
'". $_POST['factuurnr'] ."',
'". $_POST['omschrijving'] ."',
'af',
'',
'". $_POST['bedrag'] ."',
'". $_POST['btw'] ."')");
?>
Mag je vervangen door:
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
<?
$query = "
INSERT INTO
financieel (
datum,
kolom1,
kolom2,
kolom3,
kolom4,
kolom5
)
VALUES (
NOW(),
'". mysql_real_escape_string($_POST['factuurnr'])."',
'". mysql_real_escape_string($_POST['omschrijving']) ."',
'af',
'". mysql_real_escape_string($_POST['bedrag'])."',
'". mysql_real_escape_string($_POST['btw']) ."')";
$result = mysql_query($query);
?>
$query = "
INSERT INTO
financieel (
datum,
kolom1,
kolom2,
kolom3,
kolom4,
kolom5
)
VALUES (
NOW(),
'". mysql_real_escape_string($_POST['factuurnr'])."',
'". mysql_real_escape_string($_POST['omschrijving']) ."',
'af',
'". mysql_real_escape_string($_POST['bedrag'])."',
'". mysql_real_escape_string($_POST['btw']) ."')";
$result = mysql_query($query);
?>
Daarbij mag je de kolomnamen nog even vervangen door de namen die jij gebruikt. En alleen de namen opnoemen die je nodig hebt, wat je niet gebruikt, dat gebruik je niet...
Wat de waarde 'af' hier doet, is mij niet duidelijk, ik mag hopen dat dit niet betekent dat je een bedrag ergens van af wilt trekken... Dan sla je namelijk gewoon een negatief getal op. En over getallen gesproken, hopelijk gebruik je voor het bedrag en de btw een DECIMAL met voldoende decimalen, dan kun je daar mee gaan rekenen e.d.
Uiteraard is de variabele $sql verdwenen, hier staat namelijk helemaal geen SQL in, maar het resultaat van de query. $result ligt dus voor de hand.
De datum laat je door de database invoeren, NOW() doet wonderen.
En bij de foutafhandeling, ga daar ook even een echte foutmelding neerzetten (desnoods in een logboek), zelfverzonnen foutmeldingen zeggen namelijk helemaal niets en dus kun je er niets mee.
Beveiliging mag nooit ontbreken, dat zou de grootste blunder zijn die je kunt maken.
Maar ik wil het in de Nederlandse omschrijving:
DD-MM-YYYY.
Nu heb ik dit 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
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
<?php
$array = array();
$fin_q = mysql_query("SELECT ID, Datum, Factuurnummer, Omschrijving, Soort, KlantID, Bedrag, BTW FROM financieel") or die(mysql_error());
while($fin = mysql_fetch_object($fin_q)){
$array[] = $fin->ID ."|". $fin->Datum ."|". $fin->Omschrijving ."|". round(str_replace(",", ".", $fin->Bedrag), 2) ."|". round(((str_replace(",", ".", $fin->Bedrag)) * (($fin->BTW / 100))), 2) ."|". $fin->BTW ."|". round(((str_replace(",", ".", $fin->Bedrag)) * (($fin->BTW / 100)+ 1)), 2) ."|". $fin->Soort ."|". $fin->Factuurnummer;
}
if($_GET['sort'] == "1"){
$array = sorteerLijst($array, $_GET['sort'], "dd-mm-yyyy");
}
elseif($_GET['sort']){
$array = sorteerLijst($array, $_GET['sort'], null);
}
else{
$array = sorteerLijst($array, 1, null);
}
for($index=0; $index <= sizeof($array) - 1; $index++){
$los = explode("|", $array[$index]);
if(strstr($los[9], "F:")){ $fid = str_replace("F:", "", $los[9]); }
$omlen = ($_GET['print']) ? 75 : 30;
$omschr = (strlen($los[3]) > $omlen) ? substr($los[3], 0, $omlen) ."..." : $los[3];
$popup = (isset($fid)) ? "javascript:window.open(\"admin/factuur.php?id=". $fid ."\",\"\",\"width=680,height=600\");" : "javascript:window.open(\"admin/financieelpopup.php?id=". $los[1] ."\",\"\",\"width=350,height=200\");";
echo"<tr onMouseOver='this.style.backgroundColor=\"#e4e4e4\";' onMouseOut='this.style.backgroundColor=\"\"'>
<td valign='top'><nobr>". $los[2] ."</nobr></td>
<td valign='top'><a title='". $los[3] ."'><nobr>". $omschr ."</nobr></a></td>
<td valign='top'><nobr>". mkBedrag($los[4]) ."</nobr></td>
<td valign='top'><nobr><a title='". $los[6] ."% BTW'>". mkBedrag($los[5]) ."</a></nobr></td>
<td valign='top'><nobr>". mkBedrag($los[7]) ."</nobr></td>";
?>
$array = array();
$fin_q = mysql_query("SELECT ID, Datum, Factuurnummer, Omschrijving, Soort, KlantID, Bedrag, BTW FROM financieel") or die(mysql_error());
while($fin = mysql_fetch_object($fin_q)){
$array[] = $fin->ID ."|". $fin->Datum ."|". $fin->Omschrijving ."|". round(str_replace(",", ".", $fin->Bedrag), 2) ."|". round(((str_replace(",", ".", $fin->Bedrag)) * (($fin->BTW / 100))), 2) ."|". $fin->BTW ."|". round(((str_replace(",", ".", $fin->Bedrag)) * (($fin->BTW / 100)+ 1)), 2) ."|". $fin->Soort ."|". $fin->Factuurnummer;
}
if($_GET['sort'] == "1"){
$array = sorteerLijst($array, $_GET['sort'], "dd-mm-yyyy");
}
elseif($_GET['sort']){
$array = sorteerLijst($array, $_GET['sort'], null);
}
else{
$array = sorteerLijst($array, 1, null);
}
for($index=0; $index <= sizeof($array) - 1; $index++){
$los = explode("|", $array[$index]);
if(strstr($los[9], "F:")){ $fid = str_replace("F:", "", $los[9]); }
$omlen = ($_GET['print']) ? 75 : 30;
$omschr = (strlen($los[3]) > $omlen) ? substr($los[3], 0, $omlen) ."..." : $los[3];
$popup = (isset($fid)) ? "javascript:window.open(\"admin/factuur.php?id=". $fid ."\",\"\",\"width=680,height=600\");" : "javascript:window.open(\"admin/financieelpopup.php?id=". $los[1] ."\",\"\",\"width=350,height=200\");";
echo"<tr onMouseOver='this.style.backgroundColor=\"#e4e4e4\";' onMouseOut='this.style.backgroundColor=\"\"'>
<td valign='top'><nobr>". $los[2] ."</nobr></td>
<td valign='top'><a title='". $los[3] ."'><nobr>". $omschr ."</nobr></a></td>
<td valign='top'><nobr>". mkBedrag($los[4]) ."</nobr></td>
<td valign='top'><nobr><a title='". $los[6] ."% BTW'>". mkBedrag($los[5]) ."</a></nobr></td>
<td valign='top'><nobr>". mkBedrag($los[7]) ."</nobr></td>";
?>
Nu heb ik het volgende geprobeerd, en het zou moeten werken maar het werkt niet. Ik heb dit aangepast:
Code (php)
1
2
3
2
3
<?php
$fin_q = mysql_query("SELECT ID, DATE_FORMAT(datumweergave, '%d-%m-%Y') AS Datum, Factuurnummer, Omschrijving, Soort, KlantID, Bedrag, BTW FROM financieel") or die(mysql_error());
?>
$fin_q = mysql_query("SELECT ID, DATE_FORMAT(datumweergave, '%d-%m-%Y') AS Datum, Factuurnummer, Omschrijving, Soort, KlantID, Bedrag, BTW FROM financieel") or die(mysql_error());
?>
Maar nu geeft hij helemaal geen datum weer. Wat kan ik hier aan doen?
Alvast heel erg bedankt voor jullie reacties.
Is dat wel goed? Overal gebruk je de kolomnaam Datum om de datum in te zetten, nu heb je ineens de naam datumweergave gebruikt. Dat is ook een vreemde naam voor een kolom in een database, in een database geef je namelijk niks weer, je slaat alleen op. Voor de alias zou het kunnen, die ga je gebruiken voor de weergave.
DATE_FORMAT(datum, '%d-%m-%Y') AS datumweergave
Jouw sorteerfunctie is mij een raadsel, de database kan namelijk heel goed en veel sneller sorteren. Maar goed, je mag het wiel natuurlijk altijd zelf nogmaals uitvinden.
Ps. Gebruik nooit hoofdletters voor je tabel- en/of kolomnamen, dat gaat vroeg of laat fout. Tikfouten maakt iedereen en Datum is wat anders dan datum.
Bedankt voor je reactie, het is me eindelijk gelukt, nu kan ik dus ook makkelijker sorteren op jaar en kwartaal.
Paul IJmker schreef op 18.04.2008 16:57:
Ja, want je sorteert gewoon op datum. Het jaartal en kwartaal zijn daar van afgeleid, daar hoef je dus apart op te gaan sorteren. Tenzij je het jaartal bv. oplopend wilt sorteren (ASC) en het kwartaal aflopend (DESC), dan zul je ze apart moeten nemen.Bedankt voor je reactie, het is me eindelijk gelukt, nu kan ik dus ook makkelijker sorteren op jaar en kwartaal.
HAHAAHAH het is me gelukt, het selecteren op jaargang en kwartaal aan de hand van de hierboven gegeven info! Allen heel erg bedankt hiervoor (pgFrank in het bijzonder) en een heel goed weekend.
mod-edit::
Bumpen
Twee of meer keer achter elkaar in een topic posten, voordat andere forumleden gereageerd hebben, heet "bumpen". Omdat het opdringerig overkomt is bumpen pas na 24 uur toegestaan. Bumpen kan een reden zijn voor de admins en mods om een topic te sluiten. Gebruik het knopje om je tekst aan te passen indien nodig.
Twee of meer keer achter elkaar in een topic posten, voordat andere forumleden gereageerd hebben, heet "bumpen". Omdat het opdringerig overkomt is bumpen pas na 24 uur toegestaan. Bumpen kan een reden zijn voor de admins en mods om een topic te sluiten. Gebruik het knopje om je tekst aan te passen indien nodig.
Gewijzigd op 01/01/1970 01:00:00 door Paul IJmker
Dan lijkt het erop dat je niet in de for-lus de data gaat optellen. Doe eens een print_r($array); om te zien wat er nu allemaal in de array staat en hóe die erin staat. Dan wordt waarschijnlijk ook snel duidelijk hoe je e.e.a bijelkaar moet gaan optellen.
Nee hij telt niet op maar hij zet telkens de regels onder elkaar.
Waarom denk jij dat jouw code (die slecht leesbaar is...) alle records bijelkaar zou moeten optellen?
pgFrank schreef op 18.04.2008 19:29:
Waarom denk jij dat jouw code (die slecht leesbaar is...) alle records bijelkaar zou moeten optellen?
Waarom denk je dat ik dit vraag???? Ik heb niet zo veel verstand van PHP maar niet geheel achterlijk. Oke mijn script is slecht leesbaar maar hoe deed jij dit na 2 weken. Misschien kun je in plaats van een afkrakende antwoord plaatsen, een antwoord geven of misschien mee te denken. Ik dacht dat dit PHPhulp heette.