פיפ הפרש זמן

פיפ הפרש זמן

שלום,
אני מנסה לחשב הפרשי זמן באמצעות הפונקציה: TIMEDIFF ומעלה חרס בידי. למשל הקוד הבא:
<?php
$con=mysqli_connect("localhost","root","root4qpines","tigbur");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
echo TIMEDIFF('2013-07-12 10:00:00','2013-07-11 10:00:00');

?>

מעלה את הודעת השגיאה הזו:
Fatal error: Call to undefined function TIMEDIFF() in מישהו יכול לאבחן מה פה שגוי? מה פשר הודעת השגיאה? תודה
 
הפונקציה לא מוגדרת

האם זו פונקציה שכתבת בעצמך בקובץ אחר והיא אמורה להיות זמינה או שאתה חושב שיש פונקצייה מובנית כזו?
 
זו פונקציה שכפי הנראה קיימת ב mysql אך איננה

תופסת בקוד PHP. אם לא קיימת ב PHP פונקציה לחישוב הפרש זמנים, איך אני מחשב בקוד PHP הפרש שעות בין תחילת עבודה לסיום עבודה ומציב זאת במשתנה או בטבלה?
תודה
 
מרוב שניסיתי לפשט, סיבכתי. אציג אפוא את

הבעיה במלואה וברחל בתך הקטנה.
בדף HTML יש FORM אשר קולט נתוני שעות עבודה: שעת התחלה ושעת סיום (בצד שם המקום, הערות וכיו"ב).
כפתור SUBMIT ב FORM מוביל את הנתונים לעיבוד בדף PHP כדלקמן:

<?php
$con=mysqli_connect("localhost","root","root","db");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$sql="INSERT INTO June2013 (remark, startdate, enddate,interval_time,institution, company)
VALUES
(
'$_GET[Remark]',
'$_GET[startDate]',
'$_GET[endDate]',
TIMEDIFF('$_GET[endDate]','$_GET[startDate]'),
'$_GET[Institution]',
'$_GET[company]'
)";

if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
?>

תוצאת חישוב:

TIMEDIFF('$_GET[endDate]','$_GET[startDate]')

היתה: 9999.99 והועברה לשדה מסוג: DECIMAL 6,2 בטבלת SQL. ההפרש האמיתי צריך היה להיות 6 שעות.
באיזה פורמט מגיע הנתון: 10:00:00 2013-07-23 מדף HTML. איך אני מסב אותו ל DATETIME.
תודב
 
כמה דברים:

קודם כל, אתה לא עושה escaping למשתנים שלך לפני שאתה מכניס אותם לשאילתה.
במקרה הטוב זה רק יגרום באגים, במקרה הרע לאובדן נתונים ובמקרה הגרוע למניפולציות על המידע בידי אנשים שיש להם אינטרס לזה.

הכי טובה להשתמש ב prepared statement
http://www.php.net/manual/en/mysqli.quickstart.prepared-statements.php

ואם אתה לא נעול על mysqli אני יותר אהבתי את PDO בתחום הזה:
http://www.php.net/manual/en/pdo.prepare.php

בנוגע לשם של הטבלה June2013 נראה שלכל חודש בכל שנה תהיה לך טבלה נפרדת? אין צורך בזה, סתם יצור לך תחזוקה מאוד קשה ואם תרצה ליצור דוחות עם נתונים מכמה חודשים זה יסבך לך מאוד את השאילתות.

timezone: הנתונים שלך כאן מועברים על 3 מכונות שונות. הדפדפן, השרת PHP ושרת הMYSQL. אם אתה תבצע פעולות וחישובים שמסתמכים על ה timezone/השעון של המכונות אתה צריך לוודא שהשעונים שלהם מדוייקים ושאתה באותו timezone
אחרת יהיו לך דברים מאוד מוזרים.
הרבה פעמים בדרך כלל מה שעושים זה שומרים את הכל ב timezone 0 ולפי הגדרות הלקוח ממירים לשעה שהוא מכיר.
 
ובנוגע לשאלה עצמה:

נראה שאולי אתה צריך להשתמש ב
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_timestampdiff
ולהעביר לו את הפרמטר הראשון HOUR זה יחזיר לך את ההפרש בשעות.

מה בגדול אתה מנסה לעשות?
אתה עושה את זה למטרות לימוד או אתה צריך ממש מערכת עובדת? כי אולי יהיה לך יותר קל לעשות את זה ב google docs או לחפש משהו מוכן
 
תודה בניה

ברצוני להקים אתרי אינטרנט למטרות מגוונות: רישום ומעקב הזמנות , חישוב שעות וכיו"ב.
עד היום עבדתי ב SQLSERVER והחלטתי לעבור ל MYSQL. פניתי ל www.w3schools.com/html/‎, בחרתי את הנושא הרלוונטי לעניני (זה המוצג לעיל) ובניתי FORM טבלת MYSQL וקובץ PHP לפי מה שהבנתי מהמדריך שם.
נקלעתי לכל מיני בעיות מהסוג שהצגתי פה וזה מאוד יפה מצדך שאתה טורח להבין ולעזור לי לפתור את הבעיה.
לא נראה לי שבשלב זה אני בשל ללמוד את הצעתך להשתמש ב PREPARED STATEMENTS. אחרי שמשהו "ירוץ" אצלי אתפנה לשיפורים ו "נורמליזציה".
לא התעמקתי בהצעתך השניה לפתרון הבעיה עם הלינק כי יקח לי זמן ללמוד ולהבין את זה ועד אז רציתי להודות לך ולענות על שאר שאלותיך.
אם במסגרת הפתרון שיעשה בכפוף לקישור הנ"ל יתעוררו בעיות, אאלץ להוסיף לכאן שאלות...
תודה
 
למעלה