2011-07-25 28 views
0

所以管理員有選擇,他選擇要導出通過選擇我存儲在山坳[] ... 這裏是我的代碼爲出口導出數據從SQL到使用Excel PHP

session_start(); 
$HOST = 'localhost'; 
$USERNAME = 'root'; 
$PASSWORD = ''; 
$DB = 'fyp_db'; 

$link = mysqli_connect($HOST, $USERNAME, $PASSWORD, $DB); 

if (is_array($_POST['col'])) { 
    $sql = "SELECT "; 
    foreach ($_POST['col'] AS $value) { 
     $sql .= "{$value}, "; 
    } 
    $sql = substr($sql, 0, -2); 
    $sql .= " FROM account, coursedetail, coursecategory"; 
    /*echo "sql= " . $sql . "<br /><br />\n";*/ 
} else { 
    echo "No column was selected<br /><br />\n"; 
} 

function cleanData(&$str) { $str = preg_replace("/\t/", "\\t", $str); $str = preg_replace("/\r?\n/", "\\n", $str); if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"'; } 

$filename = "website_data.xls"; 
header("Content-Type: text/plain"); 
$flag = false; 
$result = mysqli_query($link, $sql) or die(mysqli_error($link)); 
while(false !== ($row = mysql_fetch_assoc($result))) { 
    if(!$flag) { 
    // display field/column names as first row 
    echo implode("\t", array_keys($row)) . "\r\n"; 
    $flag = true; 
     } 
     array_walk($row, 'cleanData'); 
     echo implode("\t", array_values($row)) . "\r\n"; 

     } 
複選框擅長什麼

我的錯誤..

警告:mysql_fetch_assoc()預計參數1是資源,對象C中給出:\ XAMPP \ htdocs中\項目\ export_successful.php上線

爲什麼? :(

+0

也許你的SQL是無效的。請發表你的SQL查詢與echo()。 也你不使用mysql_real_escape_string()或類似的東西! – ComFreek

+0

當我回聲$ sql;我看到這個SQL = SELECT名稱,聯繫人號碼,地址,date_of_birth,電子郵件,標題,類別FROM account,coursedetail,coursecategory – user861896

+0

SQL是有效的,但我認爲問題是mysql和mysqli正如Marc B所說的。 – ComFreek

回答

2

你混淆的mysqli和mysql的電話。這兩個庫是不兼容的,並通過一個返回的句柄/語句不能在其他中。

$result = mysqli_query($link, $sql) or die(mysqli_error($link)); 
       ^--- note the 'i' 
while(false !== ($row = mysql_fetch_assoc($result))) { 
          ^--- note the LACK of an 'i' 
+0

當我添加我,它確實工作,並設法提取數據,但它說警告:不能修改頭信息 - 已在C:\ xampp \中發送(由輸出開始在C:\ xampp \ htdocs \ project \ export_successful.php:17)第26行的名稱爲htdocs \ project \ export_successful.php Joe – user861896

+0

在調用header()之前,您不能有任何輸出,否則您會遇到該錯誤。 –