Page 1 of 1

dont show empty mysql field

Posted: Mon Jun 23, 2008 1:10 pm
by johntp
Hey guys I got this script from http://www.phpguru.org/static/TableEditor.html and http://www.phpguru.org/downloads/TableEditor/TableEditor.phps I have it setup how I want it for the most part, but i cannot figure out how to hide the empty fields. I have a noDisplay function I would like to call to but I'm not sure how to do this.

my no Display function

Code: Select all

 
        function noDisplay()
        {
            $args = func_get_args();
 
            foreach ($args as $a) {
                if (isset($this->fields[$a])) {
                    $this->fields[$a]['noDisplay'] = true;
                }
            }
        }
 
how i view the table.

Code: Select all

 
        /**
        * Handles viewing a row
        */
        function handleView($id)
        {
            $quotedId = $this->dbQuote($id);
 
            foreach ($this->fields as $f => $v) {
                if (empty($v['noDisplay2'])) {
                    $fields[] = $f;
                }
            }
 
            /**
            * Data filters
            */
            if (!empty($this->dataFilters)) {
                $filters = implode(' AND ', $this->dataFilters);
            } else {
                $filters = 1;
            }
 
 
            $fields = implode(', ', $fields);
            list($tables, $joinClause) = $this->getQueryTables();
 
            $row = $this->dbGetRow("SELECT $fields FROM $tables WHERE $joinClause AND $filters AND {$this->pk} = $quotedId");
            if ($row === false) {
                $this->errors[] = 'Failed to find specified row';
                return;
            }
 
            $this->parseResults($row);
 

I talked to the guy who wrote the script and all he says is
If it's the same field all the time, there's something like "hiddenColumns". If not, then define a callback function using AddCallback(). This function ia called just before each row is displayed so you can do anything you want to the row. The row data is passed as an arg. Use this for example:

Code: Select all

 
function RowCallback(&$row)
{
// Manipulate the row here
}
 
but i dont have any clue how to manipulate the row to call noDisplay on fields that are blank.

I've been ripping my hair out over this so help is GREATLY Appreciated

Re: dont show empty mysql field

Posted: Mon Jun 23, 2008 3:29 pm
by Burrito
I'm not 100% clear on your issue. You want to display something when there is a NULL value or an empty value from a MySQL database?

Re: dont show empty mysql field

Posted: Tue Jun 24, 2008 7:40 am
by johntp
Right. I want to tell it something like if($fields !== "" then call function noDisplay.

Re: dont show empty mysql field

Posted: Tue Jun 24, 2008 10:11 am
by Burrito

Code: Select all

 
while($row = mysql_fetch_assoc($result))
{
   if($row['column'] == "")
      dofunction();
}
 

Re: dont show empty mysql field

Posted: Thu Jun 26, 2008 11:46 am
by johntp
so does my function noDisplay go where the dofunction is or does it go after the dofunction?