0

私は以下のようなphpコードを持っています:

<?php
    $conn = mysql_connect("localhost","root","") or die(mysql_error());
    mysql_select_db("dbcsv",$conn);
    $data = array();
    $sql = "select orig,dlvSourceIp from tblcsv group by dlvSourceIp";
    $res = mysql_query($sql) or die(mysql_error());
     echo '<table border="1px">';
     echo "<tr><td>Dormain</td><td>ip of the domain</td><td>Total Mail</td><td>Mail Fail</td><td>Percentage</td></tr>";
        while($data = mysql_fetch_array($res)){
             //echo "<tr><td>".$data['orig']."</td><td>".$data['dlvSourceIp']."</td><td></td><td></td></tr>";
            $t = $data['orig'];
             $getData = array_unique($t);
             var_dump($getData);
}
?>

ノート

$data['orig']、データベースから選択したデータの配列であり、表示されます: cat cat dog cat dog. 次のような出力が必要です。cat dogそれが、array unique を使用する理由です。

問題:

エラーメッセージが表示されましたarray_unique() expects parameter 1 to be array, null given in C:\wamp\www\CountLine_CSV\csv2mysql.php on line 21どうすれば修正できますか? 誰でも私を助けてください、ありがとう。

4

1 に答える 1

1

配列は文字列値としてテーブルに格納されました(そう思います)。エントリを取得しexplodeて配列を作成し、を使用array_uniqueして目的の効果を得る必要があります。次のことを試して、機能するかどうかを確認してください。

$t = $data['orig']
$array = explode(" ", $t);
$array = array_unique($array);
print_r($array);

また、クエリにMySQLiまたはPDOを使用することを検討してください。

したがって、完全には、次のようなもので十分です。

<?php   
    $mysqli_connection = new mysqli("hostname", "username", "password", "database");
    if ($mysqli_connection->connect_errno) {
        echo ("Connection Failure");
        exit();
    }

    $sql = "SELECT orig, dlvSourceIp FROM tblcsv GROUP BY dlvSourceIp";
    echo '<table border="1px">';
    echo "<tr><td>Dormain</td><td>ip of the domain</td><td>Total Mail</td><td>Mail Fail</td><td>Percentage</td></tr>";
    while($data = $sql->fetch_array(MYSQLI_ASSOC)) {
        $t = $mysqli_connection->real_escape_string($data['orig']);
        $array = explode(" ", $t);
        $array = array_unique($array);
        // Do something with the array, or:
        print_r($array);
    }
    $sql->free();
    $mysqli_connection->close();
?>
于 2012-08-29T03:05:41.367 に答える