2014-02-18 51 views
-5

那麼現在我試圖生成報告(Excel文件),所以我有一個形成兩個輸入類型,當我點擊提交PHP產生的文件,但我得到一個錯誤說沒有發現記錄,爲什麼?數據庫中日期的列名是order_time,數據類型是datetime,所以格式是示例: - 2014-02-18 05:25:38這種方式?所以我的主要問題是我如何使兩個工作在一起,所以我想像SQL語句將爲此工作,但我怎麼能embppletement它,也知道我不能像這樣聲明相同的變量,但我很困惑如何,幫助將不勝感激很多:)下面是鏈接,PHP的我使用只是參考的完整的代碼和下面也是我在做什麼的Mysql和PHP錯誤

$con = mysql_connect('localhost','root',''); 
mysql_select_db('ProjectDatabase12345',$con); 

$order_time=$_POST["datefrom"]; 
$order_time=$_POST["dateto"]; 


$query = "SELECT * FROM ss_orders where order_time='".$order_time."' limit 60"; 
$header = ''; 
$data =''; 
$export = mysql_query ($query) or die ("Sql error : " . mysql_error()); 

$fields = mysql_num_fields ($export); 

for ($i = 0; $i < $fields; $i++) 
{ 
    $header .= mysql_field_name($export , $i) . "\t"; 
} 

while($row = mysql_fetch_row($export)) 
{ 
    $line = ''; 
    foreach($row as $value) 
    {            
     if ((!isset($value)) || ($value == "")) 
     { 
      $value = "\t"; 
     } 
     else 
     { 
      $value = str_replace('"' , '""' , $value); 
      $value = '"' . $value . '"' . "\t"; 
     } 
     $line .= $value; 
    } 
    $data .= trim($line) . "\n"; 
} 
$data = str_replace("\r" , "" , $data); 

if ($data == "") 
{ 
    $data = "\nNo Record(s) Found!\n";       
} 

header("Content-type: application/octet-stream"); 
header("Content-Disposition: attachment; filename=export.xls"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 
print "$header\n$data"; 
+1

這是一個文字** **你時打印'$數據== 「」'。我不認爲這是「MySQL的&PHP錯誤」 ...... –

+0

,但它給出了一個錯誤沒有了Excel裏面發現報告文件 – user3324374

+0

「沒有報告發現」或「無記錄(第)發現!」? –

回答

1

2014年2月18日五時25分38秒是一個非常非常具體的時間進行查詢。你只使用你的一個變量。你可能的意思是這樣的:

$from=$_POST["datefrom"]; 
$to=$_POST["dateto"]; 
SELECT * FROM ss_orders where 
order_time >= '".$from."' AND 
order_time <= '".$to."' limit 60 

此外,切換到mysqli或PDO和消毒這些輸入。如果這是一個公共表單,你可能會接受sql注入。 mysql_函數已被棄用。

+0

非常感謝,它工作:D – user3324374

0

你需要表達你的價值很短的代碼。你有一個select *語句,但是代碼如何知道要獲取哪個值以及在哪裏放置它?它沒有。

此外,返回多行的時候,我不會用mysql_fetch_row的時候,可以考慮使用mysql_fetch_assoc