我尝试获取表中列的值。首先,我想取桌子。然后我确实喜欢:
$sql = $dbh->query("DESCRIBE `players` ;");
foreach ($sql->fetchAll(PDO::FETCH_NUM) as $k) {
echo 'Table:' . $k[0]. '<input type="text" values=""><br> ' ;
}
那么,现在在相同的foreach中为每个表获取价值的最佳方法是什么?
解决方案我如何:
function getColumnValue($column,$name) {
global $dbh;
$sqll = ("SELECT `$column` FROM `players` WHERE `name`='$name' ");
$sthh = $dbh->prepare($sqll);
$sthh->execute();
return $sthh->fetch(PDO::FETCH_ASSOC);
}
foreach ($sql->fetchAll(PDO::FETCH_NUM) as $k) {
$test = getColumnValue($k[0],'Test');
echo 'Table: '.$k[0] .' <input type="text" value="'.$test[$k[0]].'" style="color:#000;"> <br> ';
}
您可以通过以下两种方法执行此操作:
正如我在对问题的评论中所解释的那样,您使用了两个单独的查询:一个用于查询表格描述,而另一个用于获取表格内容(行)。您需要两个(实际上是三个)循环来迭代结果,大致是这样的:
您可以为此使用联合查询,尽管这很丑陋,并不能真正简化代码的结构:
选择“ colname1” AS colname1,“ colname2” AS colname2,“ colname3” AS colname3 FROM表名
联盟
SELECT colname1,colname2,colname3 FROM表名
该单个查询将两个包含的单独子查询的结果串联在一起,因此它给出了您最初要求的内容。您只需要确保在两个子查询中查询相同数量和类型的列即可。但是请注意,这不是一种很好的样式,因为它很难调试和维护。
通常,获取列名称以输出它们是否真的是一个好主意值得怀疑。我会三思而后行:将存储体系结构和可视化结合到一个单独的层中,这是个坏主意:以后需要进行更改时,您将遇到大问题。通常,出于充分的原因,应该将那些不同的方面保持分开。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句