2017-04-09 23 views
0

カラムが質問(nom)を生成し、別のタイプが応答(タイプ)(テキスト、日付、チェックボックス、ラジオなど)を生成するテーブルを使用してフォームを作成したいと思います。 ..)、私は質問を生成することができましたが、タイプを決定することができませんでした。 フォームの入力タイプの変数として、私のchampsテーブルのtypeカラムを使用するのは本当に苦労しています。すべてのヘルプは非常にここで多くを明確にするフォーム入力タイプphp

をいただければ幸いですenter image description here

は私のコードは次のとおりです。

ChampsModel.php

<?php 
 
require_once("../config/database.php"); 
 

 
function Champsbyqid($qid){ 
 
\t $c = Database :: connect(); 
 
\t $results = array(); 
 
\t $q = $c -> prepare ("SELECT nom FROM champs WHERE qid=?") ; 
 
\t $q -> execute (array($qid)); 
 
\t while ($data = $q -> fetch()) { 
 
\t \t $results[] = $data; 
 
\t } \t 
 
\t Database :: disconnect(); 
 
\t return $results; 
 
} 
 

 
function getType($qid){ 
 
\t $c = Database :: connect(); 
 
\t $results = array(); 
 
\t $q = $c -> prepare ("SELECT type FROM champs WHERE qid=?") ; 
 
\t $q -> execute (array($qid)); 
 
\t while ($data = $q -> fetch()) { 
 
\t \t $results[] = $data; 
 
\t } \t 
 
\t Database :: disconnect(); 
 
\t return $results; 
 
} 
 

 

 
?>

ChampsController.php

<?php 
 
require_once("../model/champsModel.php"); 
 

 
$champs = Champsbyqid(1); 
 
$type = getType(1); 
 

 
?>

あなたはordre BY WHERE QID = ORDER SELECT * FROMしたいとしているChamps.php

<?php 
 
require_once("../controller/champsController.php"); 
 

 
foreach ($champs as $value) { 
 
\t foreach ($types as $val) { 
 
\t \t echo $value['nom'].'<form method="POST"><input type='$val['type']'></form>'; 
 
\t } 
 
\t 
 
} 
 

 

 
?> \t \t 
 

 
?> \t \t

答えて

1

検索した種類ごとに繰り返し各質問を生成していますが、2番目のforeachループは必要ありません。また、両方の値を取得するために単一のクエリを使用することをお勧めします。次に、$value['nom']$value['type']を簡単に使用できます。しかし、あなたがそれらを別々に保つ必要があれば、ちょうど使用してください

for ($i = 0; $i < count($champs); $i++) { 
    echo $champs[$i]['nom'].'<form method="POST"><input type='$type[$i]['type']'></form>'; 
} 
+0

分であなたを叩く...笑。 – Vbudo

+0

vbudo&inariloありがとうございました。私は最終的に2つのSQLクエリが必要ないことに気付きました。混合されたものがより効果的で、両方のアイデアがうまく働いてくれました。 – Blueberry

1

。 < - これは注文であると思われるタイプですか?変数内で連想配列として行を取得し、$ valueと言うことができます。次に、

<form method="" action=""> 
while (there are rows) { 

    echo $value["nom"].'<input type="'.$value["type"].'" 
    name="whatever"><br />'; 

    } 
</form> 

プログラミング言語で予約語を疲れさせてください。いくつかの言葉を変数として使うことはできません。

関連する問題