使用PHP在各行上显示SQL列值

时间:2015-02-06 00:30:42

标签: php mysql joomla joomla3.0

我正在使用以下MySQL / Joomla数据库查询来返回表中的结果。

$db    = JFactory::getDbo();
$query = $db->getQuery(true);
$query->select($db->quoteName(array('FormId', 'FieldName', 'FieldValue')));
$query->from($db->quoteName('#__rsform_submission_values'));
$query->where($db->quoteName('FormId') . ' = ' . $db->quote('5'));
$query->where($db->quoteName('SubmissionId') . ' = ' . $db->quote('4'));
$query->where($db->quoteName('FieldName') . ' = ' . $db->quote('documents'));
$db->setQuery($query);
$rows = $db->loadObjectList();

存储在文档中的数据" FieldName"列是复选框值。如何从列中选择每个单独的复选框值并使用PHP和HTML将其显示在其自己的行上?目前我使用以下PHP / HTML来显示结果。

foreach($rows as $row) {
    $formLayout .= "<div>" . $row->FieldValue . "</div>";
}

非常感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

假设您正在尝试确保所有字段都显示结果,您可以在运行查询后尝试以下方法:

//create an array that contains all the fields you want to ensure are  
// displayed (in the order you want them to appear) and set the default
// values to FALSE
$results=array_fill_keys(
    array('documents',
        'pictures',
        'another_field',
        'something_else'
         ), false);

//update any values that were found in database
foreach($rows as $row) {
     $results[$row->FieldName]=$row->FieldValue;   
}

//generate the html
foreach($results as $fieldName=>$fieldValue) {
    $formLayout .= sprintf('<div>The `%s` box was %s</div>',$fieldName,$fieldValue?'checked':'not checked');
}