0

ハードコーディングされたフィールドを動的フィールドに変換するタスクが与えられました。部分的に動的フィールドに変更しまし
た。状況を説明させてください。

多くのデータベースがあり、各データベースには Surveys という名前のテーブルがあります

DESCRIBE ステートメントを使用して、データベースに関係なく、Surveys テーブルのフィールドを取得します。

調査テーブルのすべてのフィールドが表示されるまで、何度もループできる方法を知る必要があります。

以下のコードでは、for ループを空白のままにしています。

これを機能させるために必要な変更を教えてください

どんな種類の助けにも本当に感謝します

function insertIntoUserUploadFileds() {

    $describe="DESCRIBE surveys";

    $sql = "INSERT INTO `userUploadFields` (`fieldName`, `inUse`, `mandatory`, `type`, `mapTo`) VALUES";

    $inUse="0";
    $type="";

    //for(){
        if($field=='type'){
            $type="N";
        }elseif(($field=='fname') || ($field=='lname') || ($field=='phone')){
            $inUse="1";
            $type="T";
        }elseif($field=='email'){
            $inUse="1";
            $type="E";
        }

        //$sql .= "('".$field."', '".$inUse."', '0', '
        $result1 = mysql_query ($describe);
        $result = mysql_query ($sql);
    //}
}
4

2 に答える 2

0
    $result1 = mysql_query ('DESCRIBE surveys');

        //here is how you retieve all field and check
        while($row = mysql_fetch_array($result1)) {

         $sql = "INSERT INTO `userUploadFields` (`fieldName`, `inUse`, `mandatory`, `type`, `mapTo`) VALUES";

           //here you can do if else to check the column name
           if($row['field']=='type')
            {
                $type="N";
            }
            else if(($row['field']=='fname') || ($row['field']=='lname') || ($row['type']=='phone'))
            {
                $inUse="1";
                $type="T";
             }

             else ($row['field']=='email')
            {
                 $inUse="1"
                 $type="E";
            }


           //build your query

           $sql .= "('".$field."', '".$inUse."', '0', '......)

           //execute your complete query
           $result = mysql_query ($sql);
        }//end of while
于 2012-11-16T03:50:19.390 に答える
0

を使用する代わりに、特定の列DESCRIBEのデフォルトを取得しようとしている場合は、これを調べることができます。type特定のテーブルの情報を分類する方法について説明します。コーデックス

于 2012-11-16T04:02:02.967 に答える