0
//( ! ) Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given

この問題が発生することはわかりません。みんな私を助けてください。これが私のコードです:

$query = "SELECT t1.employeecode, t1.employeename, t2.v, t2.w, t3.total, t3.totals
                FROM invoice t1,salaries t2,table1 t3
                WHERE t1.employeecode = salaries.employeecode AND
                t1.employeecode = t3.employeecode
                ORDER BY t1.employeecode ASC";

    $result = mysql_query($query,$con);

    if(mysql_num_rows($result)>0){

        echo '<table><tr><th>Article title</th>&nbsp;</tr>';
        while($row=mysql_fetch_array($result)){
            //$postedon = strftime("%A %e %b %Y",strtotime($row['postedon']));
            echo '<h1><tr><td><a href="3.php?employeecode='.$row["employeecode"].'">'.$row["deparment"].'</a></td></tr></h1>';
        }
4

4 に答える 4

2

$result はブール値 (false) であるため、クエリに問題があるはずです。を使用してクエリでエラーを取得することで、自分を助けてくださいmysql_error()

$result = mysql_query($query,$con) or die(mysql_error()); 

:新しいコードでは関数を使用しないでくださいmysql_*。それらはもはや保守されておらず、公式に非推奨です

したがって、またはのいずれPDOかを使用しますMySQLi(IMO PDOは道のりです)

于 2013-02-20T05:34:45.650 に答える
2

salariesテーブルにエイリアスを付けたので、 where 句のt2ように参照する必要があります。t2

$query = "SELECT t1.employeecode, t1.employeename, t2.v, t2.w, t3.total,
            t3.totals
            FROM invoice t1,salaries t2,table1 t3
            WHERE t1.employeecode = t2.employeecode AND
            t2.employeecode = t3.employeecode
            ORDER BY t1.employeecode ASC";
于 2013-02-20T05:34:53.753 に答える
0

クエリが機能していないようで、FALSE bool 値を返すことに失敗します。実行時に動的に構築した後にクエリを確認する必要がある理由を確認するには、以下の手順に従います

$result = mysql_query($query) または die($query."

".mysql_error());

エラーメッセージを確認してください。間違った列を含める必要があるようです

于 2013-02-20T05:38:02.110 に答える
0

給与を t2.. に変更してみてください。

WHERE t1.employeecode = salaries.employeecode AND

お気に入り

WHERE t1.employeecode = t2.employeecode AND

わかりませんが、テーブルに何らかのエイリアスを与えると、dbms はそのネイティブ テーブル名ではなく、そのエイリアスを読み取ります。

于 2013-02-20T05:41:57.160 に答える