-1

わかりました、私はこのコードを持っています:

//this is the hi.php//
<?php
//highlight items//
$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("juliver", $con);

$result = mysql_query("SELECT * FROM hi WHERE pp='2'");

$hi = "";

while($row = mysql_fetch_array($result)) //<--- this is the line 13//
  {
  $hi .= "<div id='hicontainer'><a id='download_now' class='imgx' href='#?w=700' rel='popup'><img src='".$row['name']."' />";
  $hi .= "<p>".$row['title']."</p>";
  $hi .= "<a href='#?w=700' id='".$row['id']."' rel='popup' class='imgx'>View full</a>    </div>";
  }

//Lots of lots of code here I just specified those code which in error.//

mysql_close($con);

?>

ここで、実際に出力を表示します。

<td>
<!--highlight items-->
<div id="tbtitle">
<img src="Images/galleryicon.png"/><p>Highlight items</p>
</div>
<div id="tblgal">
<? echo $hi; ?>
</div>
</td>

しかし、「警告:mysql_fetch_array()は、パラメーター1がリソースであると想定しています。ブール値は13行目のC:\ xampp \ htdocs \ madeinusa\hi.phpで指定されています。」というエラーが表示されます。

どうぞ、これで立ち往生しています。前もって感謝します。

4

6 に答える 6

1

$resultブール値を持っています - おそらくクエリが失敗したためです。

使用する前に、結果を検証する必要があります。

クエリの後、次のようなことを実行して、クエリが失敗する理由を確認できます。

if(!$result)
  exit(mysql_error());
于 2012-04-04T05:34:44.597 に答える
1

または、より簡単に使用できます

$result = mysql_query("SELECT * FROM hi WHERE pp='2'") or die(mysql_error());

于 2012-04-04T05:52:55.113 に答える
0

まず、コードで適切な例外処理を使用する必要があります。ラインの後

$result = mysql_query("SELECT * FROM hi WHERE pp='2'");

リソースIDまたは途中でエラーが返されるかどうかを確認する必要があります

if(!$result){
    // if you use try-catch, then use
   throw new Exception(mysql_error());
   // Or you can use
   die(mysql_error());
}else{
     while($row = mysql_fetch_array($result)) //<--- this is the line 13//
     {
        $hi .= "<div id='hicontainer'><a id='download_now' class='imgx' href='#?w=700'     rel='popup'><img src='".$row['name']."' />";
        $hi .= "<p>".$row['title']."</p>";
        $hi .= "<a href='#?w=700' id='".$row['id']."' rel='popup' class='imgx'>View    full</a>    </div>";
     }

}    
于 2012-04-04T06:23:35.230 に答える
0

これを確認してください:

mysql_connect("localhost","username","password");
于 2012-04-04T06:22:21.233 に答える
-1

クエリにエラーがある可能性があります。"SELECT * FROM hi WHERE pp='2'"
そのクエリをmysqlで直接実行して、何が起こるかを確認してください。テーブル名と列のスペルが正しいことを確認してください。

また、MySQLの予約語を誤って使用しないように、テーブル名と列をバックティック`文字で引用してみてください。

于 2012-04-04T04:50:00.213 に答える
-1

"SELECT * FROM hi WHERE pp='2'" クエリが false を返す場合があります。これは、クエリを完全に埋めるレコードがないことを意味します。クエリに対して返される行の数を知るため。

于 2012-04-04T05:40:49.097 に答える