0

以下のドロップダウンメニューの変数を使用したテーブルがあります。ユーザーがドロップダウンでオプションを選択すると、テーブルは選択に関連付けられた変数に基づいて情報を取得します。ただし、ページが最初にロードされると、クエリにドロップダウンから変数が欠落しているとエラーが発生します。ドロップダウンから選択すると、ページが更新され、問題が解決されます。最初にデータを送信するためのドロップダウン、または最初のページの読み込み時にクエリが変数を取得するために必要なものが必要です。

$selected = 'selected = "selected" ';
$Country =$ID_SOCIEDAD;
echo "<form name='country_list' method='POST' action='http://opben.com/colombia/familias-de-carteras' >";

echo "<select name='Country' tabindex='1' >";

while($row = mysql_fetch_array($result))
  {

                echo " <option  ".($row['Fund_Manager_Company_Code'] == $Country? $selected : '')."value='". $row['Fund_Manager_Company_Code'] ."'>". $row['Fund_Manager_Company_Name'] ."</option>";

                  }
       echo "     </select>
    <input type='submit' value='Filter' />";
 echo "   </form>

ドロップダウン メニュー オプションの SQL クエリは次のとおりです。

$result = mysql_query("

 SELECT 
 ID_SOCIEDADADM as Fund_Manager_Company_Code,   
 DES_SOCIEDAD_CORTO as Fund_Manager_Company_Name


FROM dr_lista_rentabilidad_diaria

GROUP BY ID_SOCIEDADADM
")

  or die(mysql_error());

テーブルのクエリは次のとおりです。

   $result = mysql_query("
      SELECT 
  ID_CARTERA as Fund_ID,
      DES_CARTERA_CC as Fund_Name,
      DES_CARTERACLASE as Class_Name,
      DES_CARTERACLASE_ESP as Special_Class_Name,
      FORMAT(POR_RENTCARTERA_C1,2) AS Yield_1month

      FROM dr_lista_rentabilidad_diaria
      WHERE COD_PAIS       = $COD_PAIS
      AND   ID_SOCIEDADADM = $ID_SOCIEDAD
      AND   `ID_COLUMNA_C1`= $ID_COLUMNA
      ORDER BY DES_CARTERA_CC ASC

  ")

       or die(mysql_error());
4

1 に答える 1

-1

あなたは質問を投稿していないので、適切な回答をするのは難しいです. ただし、そのクエリのどこかに変数 $_POST['Country'] があると思います。では、次のようにしてみませんか。

$country = $_POST['Country'];
if (!isset($country)) { $country = 'US'; }

$query = 'SELECT * FROM table WHERE country = ' . $country;

編集: BenM が (正しく) 指摘したように、このコード スニペットは絶対に保存されません。これを本番コードに含めないでください。これは、国に対して常に有効な値を提供することで、発生している SQL エラーを回避する方法についてのアイデアを提供することを目的としていました。

于 2013-02-27T14:02:53.997 に答える