2017-04-09 90 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> 

对编程语言中的保留字感到厌倦。有些词你不能用作变量。

相关问题