Как выбрать MySQL запрос с иностранным языком? - PullRequest
4 голосов
/ 07 февраля 2012

Позвольте мне показать вам простой способ

 SELECT * FROM dictionary WHERE malayalam = 'ആകാശം'

этот запрос работает нормально на phpmysql, в то же время он не обнаруживает raw при запросе на странице .php

Я просто строю словарь с английского на малаялам и с малаяла на английский

веб-сайт http://www.chatfitness.com/

Получение малаяламского слова от MySQL, работающего нормально на основе английского слова.

к сожалению, получение английского слова не работает должным образом: (

Я использую один и тот же запрос для обеих функций вот код поиска по английскому слову

if(isset($_GET['en']))
{
    $english = $_GET['en'];
    mysql_query ("set character_set_results='utf8'"); 
    $result=mysql_query("SELECT * FROM en_table WHERE word = '$english' LIMIT 1"); 
    $numrows=mysql_num_rows($result);

    if($numrows!=0){
        $row = mysql_fetch_array($result);
        $english_id = $row['en_id'];

        //select malayalam id which are matching with english id
        $en_query = mysql_query("SELECT * FROM dictionary WHERE english = '$english_id'"); 
        //$en_rows = mysql_fetch_array($en_query);

        while($en_rows = mysql_fetch_array($en_query)){
        $en_malayalam = $en_rows['malayalam'];
        mysql_query ("set character_set_results='utf8'");
            $ml_query=mysql_query("SELECT * FROM ml_table WHERE ml_id = '$en_malayalam'");
            while($ml_rows = mysql_fetch_array($ml_query)){
            echo $ml_rows['word'];
            echo "<br />";
            }

        }

    }else{
        echo "<p>നിങ്ങള്‍ അന്വേഷിക്കുന്ന " . $english . " എന്ന പദത്തിന്റെ അര്‍ഥം കണ്ടെത്താനായില്ല.</p> 
        <p>സാധ്യമെങ്കില്‍, ദയവായി നിഘണ്ടുവില്‍ ചേര്‍ക്കുക.</p>";
    }

так же, как я использую поиск с малаялам

}elseif(isset($_GET['ml'])){
    $malayalam = $_GET['ml'];
    mysql_query ("set character_set_results='utf8'");
    $results=mysql_query("SELECT * FROM ml_table WHERE 'word'= '$malayalam' LIMIT 1"); 

    $numrow=mysql_num_rows($results);
    echo $numrow ;

   //here is the problem $numrow always zero :( 
    if($numrow!=0){
        $row = mysql_fetch_array($results);
        $malayalam_id = $row['ml_id'];
        //echo $malayalam_id ;
        //select malayalam id which are matching with english id
        $ml_query = mysql_query("SELECT * FROM dictionary WHERE malayalam = '$malayalam_id'"); 
        //$en_rows = mysql_fetch_array($en_query);

        while($ml_rows = mysql_fetch_array($ml_query)){
        $ml_english = $ml_rows['malayalam'];            
            $ml_query=mysql_query("SELECT * FROM en_table WHERE en_id = '$ml_english'");
            while($ml_rows = mysql_fetch_array($ml_query)){
            //echo $ml_rows['word'];
            echo "<br />";
            }
        }    
    }else{
        echo "We do not have meaning of $malayalam at the moment. <br /> Could you add your word pls";
    }


}else{
    die("please select search value");
}

что бы я ни искал из mysql $ numrow = mysql_num_rows ($ results); Numrows всегда ноль :( Не могли бы вы помочь мне, пожалуйста, для этой проблемы

Я застрял здесь :( заранее спасибо

1 Ответ

5 голосов
/ 07 февраля 2012

Вы должны попробовать один из них:

1.) Используя mysql_set_charset('utf8', $dbconn); вместо mysql_query (), как показано в http://php.net/manual/en/function.mysql-set-charset.php

2.) Используйте query("set names utf8");, как предложено в SET NAMES utf8 в MySQL?

...