2014-04-22 74 views
0

我在PHP中有點新鮮。我實現我的新網站http://www.sanwebe.com/2013/03/loading-more-results-from-database解決方案:http://do2go.pl/do2go-nowa/

它運作良好 - 除了編碼。我的數據庫和所有東西都是UTF8。當從數據庫UTF8獲取數據似乎不起作用時。

繼承人配置和獲取代碼:

配置:

<?php 
$db_username = 'kamio2_do2gonowa'; 
$db_password = 'JeremiasZ1!'; 
$db_name = 'kamio2_do2gonowa'; 
$db_host = 'localhost'; 
$item_per_page = 2; 
mysqli_query ("SET NAMES 'utf8'"); mysqli_set_charset('utf8'); 


$connecDB = mysqli_connect($db_host, $db_username, $db_password,$db_name) or die('could not connect to database'); 


?> 

,並獲取:

<?php 
include("config.inc.php"); //include config file 
//sanitize post value 
$page_number = filter_var($_POST["page"], FILTER_SANITIZE_NUMBER_INT, FILTER_FLAG_STRIP_HIGH); 
header('Content-Type: text/html; charset=UTF-8'); 

//throw HTTP error if page number is not valid 
if(!is_numeric($page_number)){ 
    header('HTTP/1.1 500 Invalid page number!'); 
    exit(); 
} 

//get current starting point of records 
$position = ($page_number * $item_per_page); 

//Limit our results within a specified range. 
$results = mysqli_query($connecDB, "SELECT id,introtext FROM w7wst_content ORDER BY id DESC LIMIT $position, $item_per_page"); 

//output results from database 

echo '<ul class="page_result">'; 
while($row = mysqli_fetch_array($results)) 
{ 
    echo '<li id="item_'.$row["id"].'"><span class="page_message">'.$row["introtext"].'</span></li>'; 
} 
echo '</ul>'; 

?> 

我加了mysql_query ("SET NAMES 'utf8'"); mysql_set_charset('utf8');但什麼都不做。仍然獲得 符號和?而不是「所有未來3是在數據庫表中的HTML標記直接改變了這不是一個解決方案。

任何幫助表示讚賞!:)

+0

這將失敗'的mysql_query(「集名稱‘UTF8’」); mysql_set_charset('utf8');'不要混合使用MySQL API。轉到'mysqli_query(「SET NAMES'utf8'」); mysqli_set_charset('utf8');' –

+0

已經做到了,謝謝。但它仍然不起作用。 – user3561524

+0

你可以嘗試在''內加入'並檢查你的文件是否保存爲UTF-8 –

回答

1

(要關閉的問題,因爲這是解決OP的問題)

添加$connecDB->set_charset("utf8");只是$results = mysqli_query($connecDB...之前

0

你檢查它們是否可以正常存儲在表?試着鍵入這在你的數據庫(不是PHP):。

SELECT * FROM w7wst_content; 

,看看它是否顯示正確或者您可以檢查表內容與像phpMyAdmin一些工具,如果它不是你要整理設置爲類似utf8_general_ci

EDI T:另外,如何在連接數據庫之後設置字符集,hm? :)

+0

它肯定是utf8_general_ci。此表用於Joomla!3內容組件,並且它在此之外的運行良好腳本 – user3561524

+0

編輯我的答案 – Terax

0

您在一個腳本中使用mysql和mysqli。只有使用mysqli作爲mysql已被棄用。這就是說試試這個:

mysqli_character_set_name($connectDB); 
mysqli_set_char_set($connectDB, 'UTF8'); 

在連接腳本後面設置這些。

+0

更改爲mysqli - 沒有影響:( – user3561524

+0

您可以編輯您的文章與您更新的任何當前代碼,以便我們可以看到所做的任何更改。 – Andy

+0

刪除已放置的兩個字符集腳本,並將它們替換爲我在連接腳本之後放置的兩個字符集腳本。試試看。不要使用mysqli_query(「SET Name」)等。 – Andy