| FAQ |
| Kalender |
|
|
#1 | ||
|
|||
|
Mycket flitig postare
|
Hej!
Håller på med ett "statistik"-verktyg (webbapplikation) som kommer generera dynamiska rapporter (t.ex. mha. BIRT eller Crystal Reports). Har dock ett tankeproblem vad gäller detta: Den mesta av informationen finns i en databas så där är det ju inga problem med koppling till rapporterna, men viss data genereras/beräknas av PHP. Exempel: Har en tabell med bokningar (något förenklat): PHP-kod:
PHP-kod:
Frågan är hur denna data skall lagras för att vara tillgänglig i rapporten? Skall jag skapa en ny tabell (Temp) i databasen och lagra infon där? Hur länge skall den då ligga där? Dessutom ändrar sig dessa siffror efter hand så de måste räknas om vid varje visning. Tänker jag fel? |
||
|
|
Svara med citat
|
|
|
#2 | ||
|
|||
|
Har WN som tidsfördriv
|
1. Hämta alla rader mellan de datumen du vill få en rapport för och sortera dem i datumordning.
2. Loopa igenom dessa och spara dem i en array: Kod:
$array = array();
while($item = mysql_fetch_assoc()){
if(isset($array[$item['date']]){
$array[$item['date']]['num_bookings']++;
$array[$item['date']]['num_people'] = $array[$item['date']]['num_people'] + $item['num_people'];
$array[$item['date']]['comment'][] = $item['booking_no'];
}
else{
$array[$item['date']] = array(
'num_bookings' => 1,
'num_people' => $item['num_people'],
'comment' => array($item['booking_no'])
);
}
}
OBS. ingen aning om koden fungerar, skrev den här direkt i fältet. Hoppas att den är någorlunda självförklarande ändå. |
||
|
|
Svara med citat
|
|
|
#3 | ||
|
|||
|
Mycket flitig postare
|
Jo, den koden har jag och den fungerar.
Mitt PHP-skript hämtar och behandlar datan som jag beskriver ovan. Min fråga är hur jag skickar detta till rapporten (som normalt läser ur databas/tabell). För tillfället genererar PHP en HTML-tabell som presenterar detta, men jag skall gå över till att använda en rapportgenerator (t.ex. BIRT eller Crystal Reports) och behöver då veta hur jag får datan dit. |
||
|
|
Svara med citat
|
|
|
#4 | ||
|
|||
|
Klarade millennium-buggen
|
Du bör lösa detta med "GROUP BY" i SQL
Jag vet inte hur din tabell är organiserad men en gissning skulle bli Kod:
SELECT *
FROM
(
SELECT [Datum],Sum([Antal bokningar]) AS [Antal bokningar],Sum([Antal personer]) AS [Antal personer]
FROM Tab2
GROUP BY [Datum],[Antal bokningar],[Antal personer]
) AS Tab1
|
||
|
|
Svara med citat
|
|
|
#5 | ||
|
|||
|
Mycket flitig postare
|
Ja, det hade varit fint att lösa det så. Tror dock inte att SQL klarar det. I mitt första inlägg visas hur min tabell ser ut, och hur jag vill omvandla den:
PHP-kod:
PHP-kod:
Jag har exempelvis en rad i min tabell: PHP-kod:
PHP-kod:
|
||
|
|
Svara med citat
|
| Svara |
|
|