这个脚本似乎有问题。每当我将 $i 的值更改为 like 2 或其他内容时,它都会输出 A field 而不是 ALL fields。我不确定哪里出了问题。
此外,是否可以做这样的事情?结果查询中基本上有更多的字段,但我只想输出我希望用户能够编辑的结果查询中列出的字段的值(显示在resultInput中)
<?php
require('dbc.php');
mysql_select_db($db);
$result = mysql_query("SELECT * FROM about WHERE id=1");
$resultInput = array('page_header', 'sub_header', 'content', 'content_short');
if (mysql_num_rows($result) > 0) {
//loop creates inputs
//make $resultInput object to array.
$i=0;
while ($row = mysql_fetch_assoc($result)) {
$meta = mysql_fetch_field($result, $i);
if(in_array($meta->name, $resultInput )){
echo '<div class="wrapper"><label>' . ucfirst(str_replace('_', ' ',$meta->name)) .
'<br><input name="' . $meta->name .
'" type="text" class="input" value="'.$row[$meta->name].'"><br></label></div>';
}
$i++;
}
}
?>
最佳答案
虽然这不是我会做的..我已经使用了你的代码并让它应该可以工作..
if (mysql_num_rows($result) > 0) {
//loop creates inputs
//make $resultInput object to array.
while ($row = mysql_fetch_assoc($result))
{
$i=0;
while ( $i< mysql_num_fields($result))
{
$meta = mysql_fetch_field($result, $i);
if(in_array($meta->name, $resultInput ))
{
echo '<div class="wrapper"><label>' . ucfirst(str_replace('_', ' ',$meta->name)) .
'<br><input name="' . $meta->name .
'" type="text" class="input" value="'.$row[$meta->name].'"><br></label></div>';
}
$i++;
}
}
?>
仅供引用
我会怎么做,虽然看着它,我对 echo 不满意..但是..
while ($row = mysql_fetch_assoc($result))
{
foreach ($row as $fieldname => $value)
{
if (in_array($fieldname, $resultInput )) Display_data($fieldname,$value);
}
}
function Display_data($fieldname,$value)
{
echo '<div class="wrapper"><label>' . ucfirst(str_replace('_', ' ',$fieldname)) .
'<br><input name="' . $fieldname .
'" type="text" class="input" value="'.$value.'"><br></label></div>';
}
关于php - 获取字段不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11293457/