0

ここに、さまざまなテーブルからのデータベースレコードを介してドロップダウンリストにデータを入力するコードがあります。

1つのテーブル=1つのドロップダウンリストがあるいくつかのテーブルがあります

コード:(showhide_dropdown)

<?php 
$hostname = "localhost"; // usually is localhost, but if not sure, 
             check with your hosting company, 
             if you are with webune leave as localhost 
$db_user = "root"; // change to your database password 
$db_password = ""; // change to your database password 
$database = "minquep_test"; // provide your database name 
$db_table1 = "roles"; // leave this as is 
$db_table2 = "companies";
$db_table3 = "albury_branch";
$db_table4 = "minquep_branch";
$db_table5 = "countries";

$db = mysql_connect($hostname, $db_user, $db_password); 
mysql_select_db($database,$db); 
?> 

<?php
$roles_sql="SELECT role_id, role_name FROM $db_table1";
$comp_sql= "SELECT company_name FROM $db_table2";
$albury_sql= "SELECT albury_id, albury_name FROM $db_table3";
$minq_sql= "SELECT minquep_id, minquep_name FROM $db_table4"; 
$count_sql= "SELECT country_id, country_name FROM $db_table5"; 

$roles_result=mysql_query($roles_sql); 
$comp_result=mysql_query($comp_sql); 
$al_result=mysql_query($albury_sql); 
$minq_result=mysql_query($minq_sql);
$count_result=mysql_query($count_sql);

$roles_options=""; 
$comp_options="";
$al_options="";
$minq_options="";
$count_options="";

while ($roles_row=mysql_fetch_array($roles_result)) { 

    $roles_id=$roles_row["role_id"]; 
    $role=$roles_row["role_name"]; 
    $roles_options.="<OPTION VALUE=\"$role\">".$role; 
} 

while ($comp_row=mysql_fetch_array($comp_result)) { 

    $company=$comp_row["company_name"]; 
    $comp_options.="<OPTION VALUE=\"$company\">".$company; 
} 

while ($al_row=mysql_fetch_array($al_result)) { 

    $albury=$al_row["albury_name"]; 
    $al_options.="<OPTION VALUE=\"$albury\">".$albury;
} 

while ($minq_row=mysql_fetch_array($minq_result)) { 

    $minquep=$minq_row["minquep_name"]; 
    $minq_options.="<OPTION VALUE=\"$minquep\">".$minquep;
} 

while ($count_row=mysql_fetch_array($count_result)) { 

    $country=$count_row["country_name"]; 
    $count_options.="<OPTION VALUE=\"$country\">".$country;
} 


?> 

最初は本当に問題なく動作しますが、このコードが投稿されたページを開くと、mysql.exeエラーメッセージが突然ポップアップします(通常のMicrosoftエラー):予期しないエラー...そのようなもの。

そして、mysqlエラー/警告が私のページに表示されます。

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result 
         resource in C:\xampp\htdocs\minquep-native\pages\showhide_dropdown.php 
         on line 60

私はその問題を理解していません。私はPHPを初めて使用します。助けてください。ありがとう。

4

2 に答える 2

0

あなたの問題はこのクエリにあるようです:

SELECT country_id, country_name FROM countries

列とテーブルが存在することを確認してください (mysql でクエリを直接実行して、結果を確認してください)。取得しているエラーは、クエリを実行できなかったためです。

于 2012-08-05T14:46:51.193 に答える
0

したがって、発生しているエラーは以前のエラーの症状です。

60 行目で、次のようにします。

while ($comp_row=mysql_fetch_array($comp_result)) {

mysql_fetch_arrayには mysql 結果オブジェクトが必要です。しかし、それは何か他のものを手に入れました (実際には False)。それが何か他のものを得た理由は、次の行のためです:

$comp_result=mysql_query($comp_sql); 

Mysql の結果ではなく False を返しました。これを変更します。

$roles_result=mysql_query($roles_sql); 
$comp_result=mysql_query($comp_sql); 
$al_result=mysql_query($albury_sql); 
$minq_result=mysql_query($minq_sql);
$count_result=mysql_query($count_sql);

に:

$roles_result=mysql_query($roles_sql); 
if(mysql_errno() != 0) echo mysql_error();
$comp_result=mysql_query($comp_sql); 
if(mysql_errno() != 0) echo mysql_error();
$al_result=mysql_query($albury_sql); 
if(mysql_errno() != 0) echo mysql_error();
$minq_result=mysql_query($minq_sql);
if(mysql_errno() != 0) echo mysql_error();
$count_result=mysql_query($count_sql);
if(mysql_errno() != 0) echo mysql_error();

どのようなエラーが発生したかを確認します。

ノート:

Laravel などのフレームワークを使用すると、これらのエラーがキャッチされます。また、mysql は古いため、mysql ではなく mysqli を使用します。次を参照してください。http://php.net/manual/en/book.mysqli.php http://php.net/manual/en/mysqli.overview.php

于 2014-09-28T15:12:43.977 に答える