2014-02-18 2 views
-5

Ну прямо сейчас я пытаюсь сгенерировать отчет (файл excel), поэтому у меня есть два типа ввода в форме и когда я нажимаю кнопку отправки php, генерирует файл, но я получаю сообщение об ошибке, , почему? Имя столбца в моей базе данных для даты - order_time, а тип данных - datetime, поэтому формат - пример: - 2014-02-18 05:25:38 таким образом? Таким образом, моя основная проблема заключается в том, как заставить обе работать вместе, поэтому я предполагаю, что инструкция sql будет работать для этого, но как я могу ее выполнить, и я знаю, что я не могу объявить такую ​​же переменную, как это, но я смущен, как помочь, много :) Ниже ссылка на полный код 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

Это текст ** вы ** печатаете, когда '$ data ==" "'. Я бы не назвал это «ошибкой MySQL и PHP» ... –

+0

, но он дает сообщение об ошибке в файле excel – user3324374

+0

«Отчет не найден» или «Нет записей (записей)»?? –

ответ

1

2014-02-18 05: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