0

テーブル:

fungi  |  fruit  |  country

fungi-a       Aple, Orange, Grape,               Japan, America, China, Australia,

fungi-b       Aple, Watermelon, Grape,           Korea, America, China,

fungi-c       Aple, Watermelon, Orange,          Korea, Canada, China, America

fungi-d       Aple, Grape, Orange,               Japan, Canada,

include"config.php";

$result = mysql_query("SELECT * FROM `table` WHERE `fruit` LIKE
'%aple%' AND `country` LIKE'%korea%'");

function asd(){

 while($row=mysql_fetch_array($result)){

 echo $row['country'];

 } } echo implode(',',array_unique(explode(',',asd())));

値:韓国、アメリカ、中国、韓国、カナダ、中国、アメリカ

しかし、私はこの値が欲しいです:韓国、アメリカ、中国、カナダ、

私はarray_uniqueを爆発させましたが、うまくいきませんでした。

4

2 に答える 2

0

asd() で値を返していません

これはうまくいくはずです:

function asd() {
    $result = mysql_query("SELECT * FROM `table` WHERE `fruit` LIKE '%aple%' AND `country` LIKE'%korea%'");
    $countries = array();
    while($row=mysql_fetch_array($result)) {
        $countries = array_merge($countries, explode(',', $row['country']));
    }
    return array_unique($countries);
}
echo implode(',', asd());

これにより、すべての「国」レコードが $countries 配列に配置され、それが返されます。

また、OOP と PDO (PHP データ オブジェクト) または MySQLi (MySQL の改良版) も参照する必要があります。

于 2013-02-01T19:12:24.383 に答える
0

それを試してみてください

include"config.php";

$result = mysql_query("SELECT * FROM `table` WHERE `fruit` LIKE
'%aple%' AND `country` LIKE'%korea%'");

function asd(){

    $myarr = array();

    while($row=mysql_fetch_array($result)){

      if (!in_array($row['country'], $myarr)) {
        $myarr[] = $row['country'];
      }

    }
    return $myarr;
} 

echo implode(",", asd());
于 2013-02-01T19:20:31.100 に答える