-1

データベースから選択し、リストドロップボックスにデータを表示して、MySQL データベースに既に存在する国を選択するための検索機能またはプロセスを作成していますが、エラーが発生し、修正方法がわかりません。私はphpが初めてです。エラーは次のとおりです(警告: mysql_fetch_array() は、パラメーター 1 がリソースであると想定しています。ブール値は C:\wamp\www\Unnamed Site 2\resources\searchForm.php の 36 行目に指定されています)

検索.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Search page</title>
<link href="style/stylesheet.css" rel="stylesheet" type="text/css" />
<style type="text/css">
.searchtitle {
    text-align: center;
}
</style>
</head>

<body>

<!--<?php require_once('header.php'); ?>-->
<table width="80%" height="432">
  <tr>
    <td width="14%" valign="top"><!--<?php require_once('leftsideBar.php'); ?>-->
</td>
    <td width="86%" valign="top"><h2 class="searchtitle">Search Types</h2>
      <table width="95%" height="94">
      <form action="searchProcess.php" method="post" id="searchForm">

        <tr>
          <td width="20%"><label for="searchByName2">By Name</label>
            <select name="searchByName" id="searchByName2">
            </select></td>
          <td width="20%"><label for="searchByCountry">By Country</label>
            <select name="searchByCountry" id="searchByCountry">
             <option id="0">--select your country--</option>
             <?php
               require_once('Connections/connfor_lamelchameltest.php'); 

               $getallCountries = mysql_query("SELECT * FROM country");
               while($viewallCountries = mysql_fetch_array($getallCountries)){

                ?>

               <option id="<?php echo $viewallCountries['country_id']; ?> "><?php echo $viewallCountries['country_name'] ?></option>
                 <?php } ?>

            </select></td>
          <td width="25%"><label for="searchByGovernorate">By Governorate</label>
            <select name="searchByGovernorate" id="searchByGovernorate">
            </select></td>
          <td width="15%"><label for="searchByCity">By City</label>
            <select name="searchByCity" id="searchByCity">
            </select></td>
          <td width="20%"><label for="searchBySpecialization">By Specialization</label>
            <select name="searchBySpecialization" id="searchBySpecialization">
            </select></td>
        </tr>
        </form>
      </table>

  </tr>
</table>


</body>
</html>

connfor_lamelchameltest.php

<?php
$hostname_conn = "localhost";
$database_conn = "lam_el_chamel_db";
$username_conn = "root";
$password_conn = ".....";
$conn = mysql_pconnect($hostname_conn, $username_conn, $password_conn) or trigger_error(mysql_error(),E_USER_ERROR); 
?>

設定ファイルを追加します

4

2 に答える 2

3

クエリが失敗した場合、 mysql_queryが返されFALSEます。戻り値を確認する必要があります。の場合は、 mysql_errorFALSEを使用してデータベースからエラー メッセージを取得できます。

于 2013-02-27T06:41:17.093 に答える
0

ここで使用することもできmysql_num_rowsます。クエリが行を返したかどうかを確認します。

 $getallCountries = mysql_query("SELECT * FROM country");
 if(mysql_num_rows($getallCountries) > 0) {
     while($viewallCountries = mysql_fetch_array($getallCountries)){
     // insert inside option
     }
 }

データベースを選択していない場合は、このコードを使用してデータベースを選択してください

$conn = mysql_pconnect($hostname_conn, $username_conn, $password_conn) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_conn, $conn);

に変更mysql_fetch_arraymysql_fetch_assocます。

于 2013-02-27T06:43:34.557 に答える