Avatar billede neo-fisk Nybegynder
10. december 2007 - 11:35 Der er 27 kommentarer og
1 løsning

sum ikke rigtig

jeg har disse linier som er en udregning af sum.

$query = "SELECT sum(tid) AS total FROM tidsamling";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
$total = $row['total'];
echo $total;

men det virker ikke som det skal... når den udskriver sum af alle tiderne kommer de f.eks 292400 i stedet for 29:24:00

nogen som kan hjælpe?
Avatar billede lassebm Nybegynder
10. december 2007 - 11:42 #1
echo $total.":";
Avatar billede neo-fisk Nybegynder
10. december 2007 - 11:44 #2
det sætter jo bare et kolon efter tallene er udskrevet :/?
Avatar billede nielle Nybegynder
10. december 2007 - 13:22 #3
Er du sikker på at tallet 292400 skal udprintes som 29:24:00? Det ville i så fald være en meget "sjov" måde at lægge sekunder og menutter og timer sammen!
Avatar billede neo-fisk Nybegynder
10. december 2007 - 14:42 #4
det er jo det det skal :P men det bliver udskrevet 292400 i stedet for 29:24:00
Avatar billede neo-fisk Nybegynder
10. december 2007 - 14:47 #5
og tiderne er også skrevet ind i en database med kommandoen time.. :/
Avatar billede nielle Nybegynder
10. december 2007 - 15:48 #6
Hvilken data-type er "tid" feltet defineret til at være i databasen?
Avatar billede neo-fisk Nybegynder
10. december 2007 - 16:22 #7
time
Avatar billede nielle Nybegynder
10. december 2007 - 19:54 #8
Hmm, jeg er nu godt nok i tvivl om det giver mening at summere over time.

Men du kan da prøve med noget i denne stil:

<?
$total = 292400;

$sec = substr($total, -2);
$min = substr($total, -4, 2);
$hour = substr($total, 0, -4);

echo "$hour:$min:$sec";
?>
Avatar billede neo-fisk Nybegynder
10. december 2007 - 20:06 #9
jamen nu har jeg en masse private film som jeg så er ved at lave en oversigt over, og der har jeg så valgt at tiden på filmene skal med :) så jeg har en oversigt over dem
Avatar billede nielle Nybegynder
10. december 2007 - 20:16 #10
Jep, men jeg tænkte nu mere på noget med om MySQL overhovedet gav noget som helst fornuftigt når man gjorde det på den måde?
Avatar billede neo-fisk Nybegynder
10. december 2007 - 20:38 #11
tja det har jeg så ingen anelse om :P har bare fået at vide at mysql var vejen frem :)
Avatar billede nielle Nybegynder
10. december 2007 - 20:44 #12
Har du afprøvet koden i 10/12-2007 19:54:18?
Avatar billede neo-fisk Nybegynder
10. december 2007 - 20:46 #13
nej :) kan du forklare lidt nærmere?
Avatar billede nielle Nybegynder
10. december 2007 - 20:53 #14
Hvert kald af substr() udtager de relevante værdier for hhv. sekund, minut og timer. Disse bliver så sammensat igen, men denne gang med ':' tegn på de rette pladser.

Mere om substr() her:

http://dk2.php.net/substr
Avatar billede neo-fisk Nybegynder
10. december 2007 - 20:55 #15
ok kan de sammen regnes :)? f.eks. at 2x30 min bliver til en time i stedet for?
Avatar billede nielle Nybegynder
10. december 2007 - 20:59 #16
Sker det ikke i sum()'en i SELECT'en?
Avatar billede neo-fisk Nybegynder
10. december 2007 - 21:00 #17
ahh tror jeg har misforstået det så :/ men vil lige kigge det en ekstra gang igennem
Avatar billede nielle Nybegynder
10. december 2007 - 21:03 #18
Misforstået hvad?
Avatar billede neo-fisk Nybegynder
10. december 2007 - 21:10 #19
har lige kigget på det nu og har vidst også fået det til at virke.. men minutterne tæller bare op og op til 99 og først efter der lægger den en time til og starter så forfra fra 0 :/ hvad kan det nu være?
Avatar billede nielle Nybegynder
10. december 2007 - 21:12 #20
Er di sikker på at det er menutter og timer? Mon det ikke nare er totalen i sekunder?
Avatar billede neo-fisk Nybegynder
10. december 2007 - 21:16 #21
du kan lige få det kode jeg har fixet sammen...

<?
$query = "SELECT sum(tid) AS total FROM dvdsamling";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
$total = $row['total'];

$total = $total;
$sec = substr($total, -2);
$min = substr($total, -4, 2);
$hour = substr($total, 0, -4);

echo "$hour:$min:$sec";

?>

og nu udskriver den: I alt: 89:00:00 

men tilføjer jeg først f.eks. 49 min og derefter 30 min så skriver den I alt: 89:79:00
Avatar billede nielle Nybegynder
10. december 2007 - 21:24 #22
Hvad er det helt præcist du gør når du siger at du tilføjer 49 og så 30 minutter?
Avatar billede neo-fisk Nybegynder
10. december 2007 - 21:27 #23
jeg har en form hvor jeg taster oplysingerne ind og så en gem fil der smider det ind i mysqlén
Avatar billede nielle Nybegynder
10. december 2007 - 21:29 #24
Hvordan er du sikker på at det bliver lagt korrekt i databasen?
Avatar billede neo-fisk Nybegynder
10. december 2007 - 21:31 #25
ar haft en anden tråd herinde med det men du kan da lige se det her :

<?php

// Forbinder til database
include( 'config.php' );



// Modtager variabler
$titel = $_POST [ 'titel' ];

$genre = $_POST [ 'genre' ];

$timer = $_POST [ 'timer' ];

$minutter = $_POST [ 'minutter' ];


// Gemmer i database
mysql_query ("INSERT INTO $table (titel,genre,tid) VALUES ('$titel','$genre','$timer:$minutter:00') ") or die("Der er sket en fejl. Fejl: ".mysql_error());

// Lukker database
mysql_close ();
?>
Avatar billede nielle Nybegynder
11. december 2007 - 19:56 #26
Umiddelbart kan jeg ikke gennemskue hvorfor at den går sådan. Men hvis det er tilfældet så er der ingen tvivl om at sum(...) vist ikke giver dig det rigtige resultat.
Avatar billede neo-fisk Nybegynder
11. december 2007 - 20:18 #27
jeg har fået det til at virke  u :) men tak for din hjælp så langt :P smid et svar og du får points :P
Avatar billede nielle Nybegynder
11. december 2007 - 20:32 #28
Hvad var der galt?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester