0

PHP を使用して、別のテーブルの特定の列のデータをドロップダウン メニューに入力しようとしています。しかし、入力するメニューがたくさんあるので、それぞれに固有の関数を作成する代わりに、列名 (フィールドですよね?) を関数に渡したいと思いました。

現在、私はこれを1つのメニューに持っています

function print_dropdown($query, $link){
   $queried = mysql_query($query, $link);
   $menu = '<select name="wholesaler" id="wholesaler">';
   while ($result = mysql_fetch_array($queried)) {
       $menu .= '<option value="' . $result['id'] . '">' . $result['wholesaler'] . '</option>';
   }
   $menu .= '</select>';
   return $menu;
}
...
<?php echo print_dropdown("SELECT id, wholesaler FROM wholesaler_flag LIMIT 0, 10", $connect_normas_boudoir);
?>

しかし、私はこれをしたい:

function get_field($table){
    $col_2 = mysql_query('SHOW COLUMNS FROM "$table" WHERE FIELD = 2');
    return $col_2;
}

function print_dropdown($query, $link){
    $queried = mysql_query($query, $link);
    $menu = '<select name="'$col_2'" id="'$col_2'">';
    while ($result = mysql_fetch_array($queried)) {
        $menu .= '<option value="' . $result['id'] . '">' . $result['$col_2'] . '</option>';
    }
    $menu .= '</select>';
    return $menu;
}

...

<?php
    get_field(wholesaler_flag);
    echo print_dropdown("SELECT id, wholesaler FROM wholesaler_flag LIMIT 0, 10", $connect_normas_boudoir);
?>

各テーブルの 2 番目のフィールドを選択しようとするのは不適切ですか? 私の場合、関連する各テーブルには2つの列しかありません。しかし、将来的には、理論的には id の後に新しい列が挿入される可能性があることを理解しています。これを行うより良い方法はありますか?一重引用符と二重引用符を間違えた場合は、ご容赦ください。まだまだ勉強中。

注:SHOW COLUMNS FROM wholesaler_flag WHERE FIELD = 2; MySQL コンソールで試しました。もちろんうまくいきませんでしたが、それにアクセスする方法があるのではないかと思いました。これは、私の質問が関係している特定の領域です。

4

2 に答える 2

0
function print_dropdown($query, $link,$field0,$field1){
    $queried = mysql_query($query, $link);
    $menu = '<select name="'.$field1.'" id="'.$field1.'">';
    while ($result = mysql_fetch_array($queried)) {
        $menu .= '<option value="' . $result[0] . '">' . $result[1] . '</option>';
    }
    $menu .= '</select>';
    return $menu;
}

<?php
     echo print_dropdown("SELECT id, wholesaler FROM wholesaler_flag LIMIT 0, 10", $connect_normas_boudoir,"id","wholesaler");
?>

関数に sql ステートメントを渡しているので、必要なオプション ID とオプション値の名前を渡さないでください。上記では、オプション値が最初の列に固定され、値が2番目の列に固定されているため、常にSQLステートメントの最初の列としてidを、2番目の列として名前を指定する必要があります。つまり$result[0]$result[1]上記を試すことができます。ありがとう。

于 2013-04-25T03:44:29.073 に答える