[php] datum in array?

Pagina: 1
Acties:

  • B2
  • Registratie: April 2000
  • Laatst online: 22:45

B2

wa' seggie?

Topicstarter
Ik ben met het volgende bezig: Mensen kunnen klachten in een database (MySQL) zetten, en wanneer ze een klachten aanmaken of afmelden wordt er automatisch een timestamp in de database gezet. (formaat yyyy/mm/dd).

Uit deze database wordt een plaatje gegenereerd, dat werkt perfect.
Dit plaatje laat alle maanden zien, en in een column grafiek het aantal openstaande klachten, afgehandelde en totale. Dus voor elke maand drie staven.
Alleen nu wil ik dus dat er gekeken wordt naar de timestamp van een klacht en dat het de klacht bij het juiste staafje komt.

Ik haal de maand op met :
PHP:
1
2
3
4
5
6
<?
$jid = db_query("
    SELECT MONTH(o_timestamp)
    FROM products
    ");
?>

daarna parse ik deze via mysql_result naar een waarde, welke in een url komt (dus http://locatie/demo.php?maand=<? echo $maandnaam ?>&afgehandeld=<? echo ...... ?>

In demo.php kijk ik via een if statement naar de maand (kan vast beter maar heb het even zo gedaan)
PHP:
1
2
3
4
5
6
7
<?
if ($datum==1) {
    $afjan = $afgehandeld;
    $openjan = $openstaand;
    $totjan = $totfeb;
    }
?>

en dat voor elke maand.

Daarna zet ik deze data in een array
PHP:
1
2
3
4
5
<?
$data[0] = array("Afgehandeld",$afjan,$affeb.....
$data[1] = array("Openstaand",$openjan,$openfeb....
$data[2] = array("Totaal",$totjan,$totfeb.....
?>

Maar wat natuurlijk nu het geval is dat het resultaat van de sql query alleen de eerste maand weergeeft.
Dus als de eerste klacht in februari is geweest, zijn alle klachten in februari.......
Hoe zou ik dit beter kunnen doen?
Misschien door mysql_result in een array laten komen ofzo?
Of kan dat al niet?

  • B2
  • Registratie: April 2000
  • Laatst online: 22:45

B2

wa' seggie?

Topicstarter
Niemand? Is het dan zo moeilijk?

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

lijkt mij een leukere oplossing:
select Month(o_timestamp), count(afgehandeld), count(openstaand),count(*D
from table
group by Month(o_timestamp);

dan heb je in 1x per maand de totalen. (niet getest, dus wellicht nog aanpassen)

ps de volgende keer wat minder snel kicken!

Klaar voor een nieuwe uitdaging.


  • B2
  • Registratie: April 2000
  • Laatst online: 22:45

B2

wa' seggie?

Topicstarter
Op maandag 11 februari 2002 17:33 schreef chem het volgende:
lijkt mij een leukere oplossing:
select Month(o_timestamp), count(afgehandeld), count(openstaand),count(*D
from table
group by Month(o_timestamp);

dan heb je in 1x per maand de totalen. (niet getest, dus wellicht nog aanpassen)

ps de volgende keer wat minder snel kicken!
:) k thx, zal er morgen eens naar kijken.
niet zo snel? was toch 5 uur overheen gegaan....en ik loop hier een beetje op vast bij me stage.

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 27-08 13:53

chem

Reist de wereld rond

kicktijd is 24 uur hier :)

Klaar voor een nieuwe uitdaging.


  • B2
  • Registratie: April 2000
  • Laatst online: 22:45

B2

wa' seggie?

Topicstarter
Op maandag 11 februari 2002 17:33 schreef chem het volgende:
lijkt mij een leukere oplossing:
select Month(o_timestamp), count(afgehandeld), count(openstaand),count(*D
from table
group by Month(o_timestamp);

dan heb je in 1x per maand de totalen. (niet getest, dus wellicht nog aanpassen)

ps de volgende keer wat minder snel kicken!
Op zich werkt die query. Alleen ik maak geen gebruik van aparte velden voor afgehandeld e.d.
Ik heb 1 veld (Status) wat een 0 of een 1 kan zijn. Is het veld 0, dan is de klacht openstaand en bij 1 afgehandeld.
Als ik jouw query gebruik door gewoon een where toe te voegen (status= 1 ) bijvoorbeeld, krijg ik netjes resultaten in een tabel.
Alleen hoe kan ik deze het beste uitlezen? via mysql_fetch_row? ofzo iets dergelijks?

de tabel ziet er dus zo dan uit:
maand afgehandeld
2 5
3 1

en hoe geef ik dit mee in de url om het plaatje aan te roepen.
Pagina: 1