0

I got this function:

private function _loadColumnRights() {

            $db = Zend_Registry::get('db');

            // Create the select query
            $select = $db->select()
                        ->from('account_columns', array(
                            'accountId'
                        ))
                        ->where('accountId = ?', $this->getId()); 

            // Fetch the data
            $row = $db->fetchRow($select);
            if($row != null) {
                $this->setColumns($row['columns']);
            }
            else {
                $this->setColumns('');
            }
        }

I search for the accountID = '128'

My table looks like this:

accountId | columns

and at row with accountId = '128' I got a value like this 'orderdate,ref-corlido,item-no,partid,item-description,quantity-value,unit-of-measurement,acquisition-value-order-line,sales-value-order-line,markup,due-date,status,direct-delivery,out-of-scope,non-compliant,memo,request-document,documents'

If I in PHP manually execute this SQL statement:

SELECT * FROM `account_columns` WHERE `accountId` = '128'

Then I get result..

my Code also goes in to this if:

if($row != null) {
            $this->setColumns($row['columns']);
        }

But the value of $row['columns'] is empty.. If I perform a var_dump on my view on this getter then i get empty values

If I change $row['columns']) to :

$this->setColumns($row['accountId']);

then I get the 128 value.. But I don't get the column values.. How come?

1 Answer 1

1

Because you only ask for one column in the result row. :)

You only as k for accountId...

    private function _loadColumnRights() {

        $db = Zend_Registry::get('db');

        // Create the select query
        $select = $db->select()

                    // THERE IS YOU ERROR :)
                    // THE SECOND PARAMETER IS AN ARRAY OF RESULT COLUMNS
                    ->from('account_columns', array(
                        //'accountId',  <-- Your error :)
                        '*' // use this if you want all columns back
                        //'columns' // or add this column name
                    ))


                    ->where('accountId = ?', $this->getId()); 

        // Fetch the data
        $row = $db->fetchRow($select);
        if($row != null) {
            $this->setColumns($row['columns']);
        }
        else {
            $this->setColumns('');
        }
    }

P.S.: You really should use another name for the "columns" colmn... :) Look at the list of reserved words and keywords... don't use them for column or table names. :)

https://dev.mysql.com/doc/refman/5.7/en/keywords.html

Have a great day!

Good luck!

Sign up to request clarification or add additional context in comments.

1 Comment

Thanks for your answer and a big + pointing good out where the error is :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.