插入数据的Php-joomla数据库。每个插入都是新行。 根据所选值,按下"提交"后,下拉框中的每个选项都应该执行一些操作。 在当前状态下,我想要做的是"如果行值等于this,那么就这样做。我这样做的方式到目前为止还没有工作,它不接受"如果行等于这个,那么这样做"陈述,总是去"否则"。我曾想过"不等于" =!但这对于下拉框中的许多选择都不实用。
编辑: 此外,数组的结果是
stdClass Object ( [FieldValue] => over 18 years)
我如何只生产超过18年的""出现?
<?php
// Get a db connection.
$db = JFactory::getDbo();
// Create a new query object.
$query = $db->getQuery(true);
// Select all records from the user profile table.
// Order it by the ordering field.
$query->select($db->quoteName(array(FieldValue)));
$query->from($db->quoteName('tablevalues'));
$query->where($db->quoteName('SubmissionId') . ' = '. $db->quote('2'));
$query->and($db->quoteName('FieldName') . ' = '. $db->quote('age'));
// fieldname age是存储年龄的地方。下拉选择是1.超过18年2.低于18岁。
// Reset the query using our newly populated query object.
$db->setQuery($query);
$row = $db->loadObjectList();
echo nl2br("\n");
print_r($row['5']);
// 5是&#34;年龄&#34; fieldbox。我需要找到一种说法&#34; fieldname age&#34;当我完成当前的问题。 //此外,尝试了print_r($ row [&#39; 5&#39;])FieldValue,结果仍然相同。
echo nl2br("\n");
if($row['5']=="over 18 years")
{
echo "5";
}
else
{
echo "10";
}
echo nl2br("\n");
//它总是显示10
// Load the results as a list of stdClass objects (see later for more options on retrieving data).
$results = $db->loadObjectList();
?>
答案 0 :(得分:0)
您说$row['5']
包含您要检查的值。
// 5是&#34;年龄&#34; fieldbox
但是,您正在检查是否与另一个字段相等,即$row['27']
目前尚不清楚你想要实现的目标,但是回答了为什么你总是看到它进入else
块并显示10
的问题。我无法看到您的数据,但您应该使用关联字段名称正确处理字段名称,即$ row [&#39; age&#39;],以确保始终如一地定位正确的字段。
没有args的loadObjectList()
方法返回一个行数组,而不是一行。
请参阅此处的文档:https://docs.joomla.org/Selecting_data_using_JDatabase#loadObjectList.28.29
更新
正如你所说:
数组的结果是
stdClass Object ( [FieldValue] => over 18 years)
您进一步询问如何访问此值,您可以像这样访问它(因为这是一个对象,而不是一个数组)。
$row->FieldName