1

ここで見つけた例を使用して、以下のコードを使用して PHP でテーブルを作成しています。ただし、これを実行すると、次のエラーが表示されます。

警告: mysql_fetch_assoc(): 指定された引数は、94 行目の /homepages/2/d333603417/htdocs/locationsconsole.php の有効な MySQL 結果リソースではありません

私のコードの94行目はwhile (($row = mysql_fetch_assoc($query)) !== false) {

コードを間違って解釈したのか、コードにエラーがあるのでしょうか。誰かがこれを見て、この問題を修正する方法について少しガイダンスを提供してくれるかどうか疑問に思いました.

<form name="locationsconsole" id="locationsconsole" method="post" action="locationsaction.php">
<?php
$query = "SELECT  l.*, COUNT(f.locationid) totalfinds FROM detectinglocations l LEFT JOIN finds f ON f.locationid = l.locationid WHERE l.userid = '27'  GROUP BY l.locationname";
?>

<table>
<thead>
<tr>
    <th width="62"><div align="center">Location Name</div></th>
    <th width="120"><div align="left">Location Address</div></th>
    <th width="81"><div align="center">No. Of Finds Made </div></th>                            
</tr>
</thead>
<tbody>
<?php
    while (($row = mysql_fetch_assoc($query)) !== false) {
?>
<tr>
<td><?php echo $row['locationname']; ?></td>
  <td><?php echo $row['returnedaddress']; ?></td>
    <td><?php echo $row['totalfinds']; ?></td>
    </tr>
<?php
}
?>
</tbody>
</table>
</form> 
4

1 に答える 1

1

結果を取得する前に、以下を使用して実際にクエリを実行する必要がありmysql_queryます。

$sql = "SELECT  l.*, COUNT(f.locationid) totalfinds FROM detectinglocations l LEFT JOIN finds f ON f.locationid = l.locationid WHERE l.userid = '27'  GROUP BY l.locationname";
$query = mysql_query($sql);

ただし、mysql_拡張機能は推奨されておらず、PHP の将来のバージョンでは削除されるため、可能であれば PDO または MySQLi に切り替えることをお勧めします。

于 2012-07-05T17:20:07.357 に答える