PHP sql-如果行值等于this,则回显

时间:2018-03-16 09:32:24

标签: php mysql joomla

插入数据的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();
    ?>

1 个答案:

答案 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