Bezoekersteller
Onderstaand volgt de broncode van dit kleine stukje. Ik heb het wel vereenvoudigd voor op dit forum te posten: zoals het script er nu staat worden enkel de maanden tekstueel weergegeven zonder dat men kan kiezen.
Ter info: in de database staat dag ingesteld als varchar met de volgende notatie: DD-MM-YY
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
$query4 = mysql_query("SELECT * FROM hits WHERE dag NOT LIKE '%-".$maand."-".$jaar."' GROUP BY dag DESC");
$i = 0;
while ($record4 = mysql_fetch_object($query4)) {
list($dag2,$maand2,$jaar2) = split('-', $record4->dag);
$mj[$i] = $maand2."-".$jaar2;
if ($mj[$i-1] != $maand2."-".$jaar2)
{
echo "$maand2-$jaar2 <br>";
}
$i++;
}
}
else
{
echo 'Geen gegevens gevonden';
}
?>
$query4 = mysql_query("SELECT * FROM hits WHERE dag NOT LIKE '%-".$maand."-".$jaar."' GROUP BY dag DESC");
$i = 0;
while ($record4 = mysql_fetch_object($query4)) {
list($dag2,$maand2,$jaar2) = split('-', $record4->dag);
$mj[$i] = $maand2."-".$jaar2;
if ($mj[$i-1] != $maand2."-".$jaar2)
{
echo "$maand2-$jaar2 <br>";
}
$i++;
}
}
else
{
echo 'Geen gegevens gevonden';
}
?>
Alvast dank bij voorbaat voor nuttige tips
En wat is de vraag?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$query4 = mysql_query("SELECT * FROM hits WHERE dag NOT LIKE '%-".$maand."-".$jaar."' GROUP BY dag DESC");
$i = 0;
$tmp_maand = "N/A";
while ($record4 = mysql_fetch_object($query4)) {
list($dag2,$maand2,$jaar2) = split('-', $record4->dag);
$mj[$i] = $maand2."-".$jaar2;
if ($mj[$i-1] != $maand2."-".$jaar2 && $maand2 != $tmp_maand)
{
echo "$maand2-$jaar2 <br>";
$tmp_maand = $maand2;
}
$i++;
}
}
else
{
echo 'Geen gegevens gevonden';
}
?>
$query4 = mysql_query("SELECT * FROM hits WHERE dag NOT LIKE '%-".$maand."-".$jaar."' GROUP BY dag DESC");
$i = 0;
$tmp_maand = "N/A";
while ($record4 = mysql_fetch_object($query4)) {
list($dag2,$maand2,$jaar2) = split('-', $record4->dag);
$mj[$i] = $maand2."-".$jaar2;
if ($mj[$i-1] != $maand2."-".$jaar2 && $maand2 != $tmp_maand)
{
echo "$maand2-$jaar2 <br>";
$tmp_maand = $maand2;
}
$i++;
}
}
else
{
echo 'Geen gegevens gevonden';
}
?>
@Robert
Quote:
Hierbij worden echter alle maanden verschillende keren weergegeven wat geen al te beste indruk achterlaat.
Njah geen echte vraag maar kom :-D
Bedoeling is dat op het scherm de andere maanden worden weergegeven. Bijvoorbeeld:
06-07
05-07
04-07
...
Op dit moment krijg ik:
05-07
03-07
06-07
05-07
04-07
03-07
06-07
05-07
04-07
...
Ook met de hulp van Sab blijft dit probleem bestaan. Ben er al dagen mij hoofd over aan het breken maar ik kom er niet aan uit..
03-07 [echo]
03-07 [ignore]
04-07 [echo]
04-07 [ignore]
05-07 [echo]
06-07 [echo]
jouw situatie wordt alles geechod want $tmp_maand is altijd != $maand2 !
Gewijzigd op 01/01/1970 01:00:00 door Sab Kriksdeegir
Op welke manier kan ik anders ordnen op date dan deze?
Dus je wilt alle gegevens behalve van één maand.
Dan hebben de andere maanden toch nog verschillende dagen (1-31/30/29/28) en dus evenzoveel antwoorden. Dus krijg je die maanden toch altijd meerdere keren.
Maarten Kupers schreef op 17.07.2007 21:51:
Ter info: in de database staat dag ingesteld als varchar met de volgende notatie: DD-MM-YY
En precies daar zit je fout. Je slaat een datum op in een veld dat voor strings bedoeld is. Je zou een veldtype DATE moeten gebruiken. Daar kun je namelijk alle datumfuncties van MySQL op loslaten.
Bijvoorbeeld:
SELECT veld1, veld2
FROM tabelnaam
ORDER BY DATE_FORMAT(datum, '%Y-%m') DESC
SanThe schreef op 17.07.2007 22:24:
SELECT * FROM hits WHERE dag NOT LIKE '%-".$maand."-".$jaar."' GROUP BY dag DESC
Dus je wilt alle gegevens behalve van één maand.
Dan hebben de andere maanden toch nog verschillende dagen (1-31/30/29/28) en dus evenzoveel antwoorden. Dus krijg je die maanden toch altijd meerdere keren.
Dus je wilt alle gegevens behalve van één maand.
Dan hebben de andere maanden toch nog verschillende dagen (1-31/30/29/28) en dus evenzoveel antwoorden. Dus krijg je die maanden toch altijd meerdere keren.
Laat dat nu net het probleem zijn ;)
Jan Koehoorn schreef op 17.07.2007 22:27:
En precies daar zit je fout. Je slaat een datum op in een veld dat voor strings bedoeld is. Je zou een veldtype DATE moeten gebruiken. Daar kun je namelijk alle datumfuncties van MySQL op loslaten.
Bijvoorbeeld:
SELECT veld1, veld2
FROM tabelnaam
ORDER BY DATE_FORMAT(datum, '%Y-%m') DESC
Maarten Kupers schreef op 17.07.2007 21:51:
Ter info: in de database staat dag ingesteld als varchar met de volgende notatie: DD-MM-YY
En precies daar zit je fout. Je slaat een datum op in een veld dat voor strings bedoeld is. Je zou een veldtype DATE moeten gebruiken. Daar kun je namelijk alle datumfuncties van MySQL op loslaten.
Bijvoorbeeld:
SELECT veld1, veld2
FROM tabelnaam
ORDER BY DATE_FORMAT(datum, '%Y-%m') DESC
Ik ga het eens uitproberen, alvast bedankt!
Maarten Kupers schreef op 17.07.2007 22:30:
Laat dat nu net het probleem zijn ;)
Maar zo is jouw datasysteem opgebouwd. Dan zit de fout toch in de opbouw.
Bedankt voor al jullie tips en hulp!
Graag gedaan ;-)