phpLens
 home  products examples manual  faq support forum  contact news  login store

More Examples:   Run: Checking for empty strings

Free Download

<?php

include('/big/dom/xphplens/www/php/phplens/phplens.inc.php');
session_start();

    
//----------------------------------------
    // The following lines are for formatting 
    // the page and not needed by phplens
    
$gTitle "Checking for empty strings";
    include(
'./header.php');
?>
<p>
All browsers do not display empty strings properly in a table cell. Part of the table cell
borders disappear when attempting to display an empty string. What phpLens does is to automatically insert a 
non-breaking space "&amp;nbsp;" into the cell. If you want to manipulate the values in a cell that may
potentially have an empty cell, you have to check for the empty string. This example shows how you 
go about checking for an empty string.   
</p>

<p>
<b>In this example:</b> If {country} is not entered into the database, display {country} as "unknown".  
</p>
<?php
$lens 
PHPLensPConnect('ex308',"select * from lensusers order by userid",
        
'mysql',     // database server type, eg. pgsql, odbc, mssql, oci8
        
$gEX_server,    // eg. localhost or ODBC DSN
        
$gEX_userid,    
        
$gEX_password,    
        
$gEX_db2);    // optional, name of database to connect toif (! $lens) die('PHPLens ex300 failed to start');
//-----------------------------------------------------
// to disable dynamic editing, uncomment the line below
//$lens->dynEdit = 0;

//----------------------------------------------------------
// Define Lens properties which cannot be defined through UI
$lens->password '';    // Password to modify everything, including SQL
$lens->menuHide '';    // Which menu items to hide. Eg. menuHide="ALL;NAV;FILTER" to hide ALL, NAV=hide next/prev btns, FILTER=hide search 

//--------------------------------------------------------
// Define Lens properties which can be set through the UI


$lens->keyTable 'LENSUSERS';    // Save Data Table
$lens->keyCol 'USERID';    // Primary Key of Save Data Table
$lens->pageSize 20;    // rows per page
$lens->showRecNo 0;    // 0=hide 1=left 2=right

$lens->nameLens 'AGE^Age;COUNTRY^Country^^^;CREATED^Created^^^;LASTMOD^LASTMOD^^^;PASSWORD^Password^Password*^Password*^;USERID^User ID^User ID*^User ID*^;FIRSTNAME^Name^First Name^First Name^First Name;LASTNAME^Last Name^^^;EMAIL^email^email*^email*^;ADDRESS1^Address Line 1^^^;ADDRESS2^Address Line 2^^^;POSTCODE^Postcode^^^;CITY^City^^^;STATE^State^^^';
$lens->gridLens 'USERID;FIRSTNAME;EMAIL;COUNTRY';
$lens->detailLens 'USERID;FIRSTNAME;LASTNAME;EMAIL;ADDRESS1;ADDRESS2;POSTCODE;CITY;STATE;COUNTRY;AGE;CREATED';
$lens->editLens 'USERID;PASSWORD;FIRSTNAME;LASTNAME;EMAIL;ADDRESS1;ADDRESS2;POSTCODE;LASTMOD;CITY;STATE;COUNTRY;AGE';
$lens->newLens 'USERID;PASSWORD;FIRSTNAME;LASTNAME;EMAIL;ADDRESS1;ADDRESS2;POSTCODE;CITY;STATE;COUNTRY;AGE';
$lens->readOnlyLens 'CREATED';
$lens->defaultLens 'CREATED^=time();LASTMOD^=time()';
$lens->validation 'EMAIL^=email^';

$lens->powerLens 'FIRSTNAME^{FirstName} {LastName};COUNTRY^={Country} == {nbsp} ? "<font color=red>unknown</font>" : {Country} ';
$lens->mustFill 'USERID;PASSWORD';


//-----------------
// Generate HTML

$lens->Render();
$lens->Close();

?>

<h3>Notes</h3>
What we want is to check if the value in {Country} is a non-breaking space. 
If it is, we replace the value with "unknown". Otherwise, we display {Country}

We have used the ternary conditional operator in PHP for this. 

Powerlens setting for {country} <br>
<pre>
     = {Country}=={nbsp} ? "&lt;font color=red>unknown&lt;/font>" : {Country} 
</pre>
The non-breaking space is a special variable in phpLens known as {nbsp}.

<p><b>Ternary conditional operator</b><br>
For those of you unfamiliar with the ternary conditional operator, the explanation for this is below: 
<pre>
The ternary conditional operator functions as follows: 
     $first ? $second : $third
</pre>

If the value of the first subexpression is true (non-zero), 
then the second subexpression is evaluated, and that is the result of the conditional expression. 
Otherwise, the third subexpression is evaluated, and that is the value.

You can read more on this in php.net's 
<a href="http://php.net/manual/en/language.expressions.php#AEN3587">
online documentation</a>. 
</p>
<b>Why we can't use "&amp;nbsp;" in Powerlens</b><br>

When you use phpLens to generate source code, phpLens uses the semi-colon character ";"  
to separate fields in phpLens properties. Therefore, you cannot enter a semi-colon in Powerlens. 
<br>E.g. 
You cannot enter the following in Powerlens: 
<pre>
     = {Country}==&amp;nbsp<font color=red>;</font> ? "&lt;font color=red>unknown&lt;/font>" : {Country} 
</pre> 

As a workaround, phpLens has a variable called {nbsp} to represent "&amp;nbsp;". In the next version of phpLens, 
we will make available another variable called {semicolon} which will provide you with another way to handle
special characters. 
<?php        
include ('./footer.php');
?>
email: contact#phplens.com (change # to @)     telephone (malaysia): 60-3-7947 2888     fax (malaysia): 60-3-7947 2800