2017-04-09 112 views
0

我想創建一個表格,其中一列生成問題(nom),另一個生成可以是(文本,日期,複選框,廣播等)的響應類型(類型)。 ..),但我能夠產生問題,但我無法確定類型。 我真的很努力地將champs表中的類型列用作表單中輸入類型的變量。 enter image description here表單輸入類型php

任何幫助將非常讚賞

澄清更這裏是我的代碼:

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); 
 

 
?>

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

您正在爲每個檢索到的類型重複生成每個問題,您不需要第二個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謝謝你們兩個我終於注意到,沒有必要進行兩個sql查詢,而混合查詢更有效,並且你的想法都很奏效,非常感謝你,你不知道這對我有多大幫助,謝謝! – Blueberry

1

你會想SELECT * FROM WHERE QID = ORDER BY公共秩序; < - 這是一種假定爲秩序的類型嗎?獲取行作爲關聯數組,在變量中,可以說$ value。然後,

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

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

    } 
</form> 

對編程語言中的保留字感到厭倦。有些詞你不能用作變量。