2013-08-04 49 views
-3

我不知道這有什麼功能的問題:如何修復php函數bool?

function server_grafico_expirar($data) { 
    $data = sanitize($data); 
    $query = mysql_query("SELECT `data_exp` FROM `settings` WHERE `data_exp` = '$data'"); 
    return (mysql_result($query, 0) == 1) ? true : false; 
} 

該功能本來如果日期(「d.m.Y」)等於在mysql中的日期返回true。使用這樣

林:

$data = date('d.m.Y'); 
if(server_grafico_expirar($data)){ 
    echo "Today, is the date!"; 
} 

的錯誤是:

Parse error: syntax error, unexpected T_IF in /home/mcser325/public_html/checker.php on line 35 
+2

而不是你想要它做什麼。它究竟做了什麼? – castis

+0

它會返回什麼呢? – siride

+0

如果日期('dmY')等於mysql中的日期,它應該返回true。它只是檢查日期。 –

回答

1

首先,你必須確保在settings表不包含具有data_exp列設置爲今天的日期行格式爲dmY

mysql_result從MySQL結果集中檢索一個單元格的內容。您正在檢索的單元格是data_exp。從你的問題中,我已經假定data_exp是格式爲d.m.Y的日期。

這就是說,mysql_result($查詢,0)將從來沒有等於1,因爲它會返回您選擇的日期。你可以用兩種方式處理這個,你既可以檢查電池等於$的數據,然後返回true

function server_grafico_expirar($data) { 
    $data = sanitize($data); 
    $query = mysql_query("SELECT `data_exp` FROM `settings` WHERE `data_exp` = '$data'"); 
    return mysql_result($query, 0) == $data; 
} 

你也可以檢查有多少行返回。如果返回多於零行,則可以返回true。

function server_grafico_expirar($data) { 
    $data = sanitize($data); 
    $query = mysql_query("SELECT `data_exp` FROM `settings` WHERE `data_exp` = '$data'"); 
    return mysql_num_rows($query) > 0; 
} 

請注意,mysql擴展從PHP 5.5.0開始已棄用,並且將來會被刪除。應該使用MySQLiPDO_MySQL擴展名。

+0

現在工作正常... Thanksss –

+2

這裏你不需要三元操作。 'return mysql_num_rows($ query)> 0'就夠了。 – Shikiryu

+0

好點@Shikiryu,我更新了帖子。 –

0

除了任何其他潛在的錯誤,你的PHP解析器說的是,有語法錯誤。這不是你至少向我們展示的內容,但要確保你已經關閉了每個相應的大括號({ }),並且它們正確匹配並且所有行以分號結尾(;)。

我建議正確縮進以更容易地找到錯誤。