Timediff
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
<?php
$sql = "SELECT TIMEDIFF('".$row2['begintijd']."','NOW()') AS verschil";
$query = mysql_query($sql);
$tijd = mysql_fetch_object($query);
$tijdBrokken = explode(":",$tijd->verschil);
echo'<TD ALIGN="right" STYLE="padding-right: 9px">'.$tijdBrokken[0].'</TD></TR>';
}
?>
$sql = "SELECT TIMEDIFF('".$row2['begintijd']."','NOW()') AS verschil";
$query = mysql_query($sql);
$tijd = mysql_fetch_object($query);
$tijdBrokken = explode(":",$tijd->verschil);
echo'<TD ALIGN="right" STYLE="padding-right: 9px">'.$tijdBrokken[0].'</TD></TR>';
}
?>
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/ralphjenl/domains/ralphje.nl/public_html/home/2-gebroeders/POH/verzamelen.php on line 80
De variabelnamen kloppen gewoon allemaal.
echo je query is en voer hem in in phpmyadmin
Hoe bedoel je dat?
en de output invoeren in phpmyadmin
Ja duhu, maar waar voer ik wat in? Er zit een fout in mijn script, wie weet verbeteringen?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$sql = "
SELECT TIMEDIFF(".$row2['begintijd'].", CURTIME()) AS verschil";
$query = mysql_query($sql) or trigger_error (mysql_error ());
$tijd = mysql_fetch_object($query);
$tijdBrokken = explode(":",$tijd->verschil);
echo'<TD ALIGN="right" STYLE="padding-right: 9px">'.$tijdBrokken[0].'</TD></TR>';
?>
$sql = "
SELECT TIMEDIFF(".$row2['begintijd'].", CURTIME()) AS verschil";
$query = mysql_query($sql) or trigger_error (mysql_error ());
$tijd = mysql_fetch_object($query);
$tijdBrokken = explode(":",$tijd->verschil);
echo'<TD ALIGN="right" STYLE="padding-right: 9px">'.$tijdBrokken[0].'</TD></TR>';
?>
Edit:
paar enkele quotes uit de query verwijderd
paar enkele quotes uit de query verwijderd
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
Maar ik heb nog geen idee wat fout is nu.
zie mijn edit van de vorige post
Notice: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(2006-08-28 13:59:22, CURTIME()) AS verschil' at line 1 in /home/ralphjenl/domains/ralphje.nl/public_html/home/2-gebroeders/POH/verzamelen.php on line 80
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/ralphjenl/domains/ralphje.nl/public_html/home/2-gebroeders/POH/verzamelen.php on line 81
Wat je uit zou kunnen proberen is even met de hand letterlijk '13:59:22' invullen in je query, dan weet je het snel genoeg.
Edit:
Deze doet het lokaal prima:
SELECT TIMEDIFF( CURTIME( ) , '12:00:00' ) AS verschil
FROM phphulp
LIMIT 0 , 30
Deze doet het lokaal prima:
SELECT TIMEDIFF( CURTIME( ) , '12:00:00' ) AS verschil
FROM phphulp
LIMIT 0 , 30
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$sql = "
SELECT TIMEDIFF( CURTIME() , '15:45:00' ) AS verschil";
$query = mysql_query($sql) or trigger_error (mysql_error ());
$tijd = mysql_fetch_object($query);
$tijdBrokken = explode(":",$tijd->verschil);
?>
$sql = "
SELECT TIMEDIFF( CURTIME() , '15:45:00' ) AS verschil";
$query = mysql_query($sql) or trigger_error (mysql_error ());
$tijd = mysql_fetch_object($query);
$tijdBrokken = explode(":",$tijd->verschil);
?>
Dit is de code die ik nu heb. Ik zal de rest van de code even plaatsen zodat er beter overzicht is.
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
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
<?php
$sql2 = "SELECT * FROM spelproductie WHERE naam = '".$naam."'";
$res2 = mysql_query($sql2);
$get2 = mysql_num_rows($res2);
if($get2 >= 1)
{
echo'
<TABLE WIDTH="520" BORDER="1" BORDERCOLOR="#AAAAAA" cellspacing="0">
<TR STYLE="padding-left: 9px">
<TD><B>Productie</B></TD>
<TD><B>Status</B></TD>
<TD><B>Duur</B></TD>
</TR>';
while($row2 = mysql_fetch_array($res2))
{
echo'
<TR>
<TD STYLE="padding-left: 9px">'.$row2['productievorm'].'
</TD>
<TD ALIGN="right" STYLE="padding-right: 9px">'.$row2['productiestatus'].'
</TD>';
echo'<TD ALIGN="right" STYLE="padding-right: 9px">'.$row2['eerstvolgendehandeling'].'</TD>';
$sql = "
SELECT TIMEDIFF( CURTIME() , '15:45:00' ) AS verschil";
$query = mysql_query($sql) or trigger_error (mysql_error ());
$tijd = mysql_fetch_object($query);
$tijdBrokken = explode(":",$tijd->verschil);
echo'<TD ALIGN="right" STYLE="padding-right: 9px">'.$tijdBrokken[0].'</TD></TR>';
}
echo'</TABLE>';
?>
$sql2 = "SELECT * FROM spelproductie WHERE naam = '".$naam."'";
$res2 = mysql_query($sql2);
$get2 = mysql_num_rows($res2);
if($get2 >= 1)
{
echo'
<TABLE WIDTH="520" BORDER="1" BORDERCOLOR="#AAAAAA" cellspacing="0">
<TR STYLE="padding-left: 9px">
<TD><B>Productie</B></TD>
<TD><B>Status</B></TD>
<TD><B>Duur</B></TD>
</TR>';
while($row2 = mysql_fetch_array($res2))
{
echo'
<TR>
<TD STYLE="padding-left: 9px">'.$row2['productievorm'].'
</TD>
<TD ALIGN="right" STYLE="padding-right: 9px">'.$row2['productiestatus'].'
</TD>';
echo'<TD ALIGN="right" STYLE="padding-right: 9px">'.$row2['eerstvolgendehandeling'].'</TD>';
$sql = "
SELECT TIMEDIFF( CURTIME() , '15:45:00' ) AS verschil";
$query = mysql_query($sql) or trigger_error (mysql_error ());
$tijd = mysql_fetch_object($query);
$tijdBrokken = explode(":",$tijd->verschil);
echo'<TD ALIGN="right" STYLE="padding-right: 9px">'.$tijdBrokken[0].'</TD></TR>';
}
echo'</TABLE>';
?>
Maar als ik dit heb ben ik er nog niet. Ik heb 2 waarden. De datum waarop een productie is aangemaakt, en hoelang hij duurt. Ik moet dan weergeven hoelang het nog duurt voordat de productie klaar is. Anders gewoon 00:00:00.
En later moet ik kijken als hij klaar is dan moeten er weer bewerkingen worden uitgevoerd in de database. Dus dan weet je even wat ik wil.
Weet je misschien een andere oplossing die beter werkt?
Als je begintijd bijvoorbeeld half twaalf 's avonds is op 20 mei en je eindtijd is twee uur 's nachts op 21 mei moet er evengoed 150 minuten uit rollen, neem ik aan.
Maar volgens mij kan dat toch met deze functie?
Wie weet hoe ik dit kan aanpakken? BUMB
SELECT timediff( '2008-01-01 00:01:00', '2007-12-31 23:59:00' ) AS verschil
geeft keurig 00:02:00
Hmmm, ik ben er achter waarom het niet wilde, mijn mysql versie is te laag, je hebt minimaal versie 4.1 nodig om de functie timediff() te gebruiken. Maar hoe krijg ik het voor elkaar dat die versie omhoog gaat. Ik zit namenlijk bij iemand anders op zijn webspace.
Als je de twee tijden in dit formaat zet:
yyyy-mm-dd hh:mm:ss
dan kun je er een UNIX timestamp van maken met strtotime. Dat levert twee getallen op die je van elkaar af kunt trekken om het verschil in seconden te krijgen.
En exploden op een spatie kan dat?
En het min verschil kijk je dat of niet?