[FX.php List] Record Count after the fact.. oops

DC dan.cynosure at dbmscan.com
Fri Feb 16 11:28:37 MST 2007


oops! ignore the code example from the previous post, it was wrong.

sorry. i just read the code... it should have read:

<?php
$temphtml = 'start<br>';
// create flag array same size as value array
$flag_arr = array(1,0,1,0);
$string = 'Not Showing because flag is ZERO';
$arr = array('value1','value2','value3','value4');
foreach ($arr as $key => $value) {
$temphtml .= ((!$flag_arr[$key])?$string:$value) . 'blah<br>';
}
echo $temphtml;
?>

dan

DC had written:
> i would recommend making temp variables and then embedding them in HTML. 
> the less you directly mix HTML and PHP the happier you'll be down the 
> road. it's easier to debug, read, explain, update, etc...
> 
> that said, yes, there is an "if" syntax that allows you to embed... it's 
> generally useful in other places too!
> 
> here's a little example i put together to demonstrate a few little 
> tricks i've picked up along the way! this is tested code
> 
> <?php
> $temphtml = 'start<br>';
> // create flag array same size as value array
> $flag_arr = array(1,0,1,0);
> $string = 'Not Showing because flag is ZERO';
> $arr = array('value1','value2','value3','value4');
> foreach ($arr as $key => $value) {
> $temphtml .= (($flag_arr[$key]==$value)?$string:$value) . 'blah<br>';
> }
> echo $temphtml;
> ?>
> 
> note two things:
> 
> 1) the string concatenation operator .= inside the foreach. allows you 
> to more concisely say "append more to what's already there"
> 
> 2) the alternate "if" syntax that is tucked inside parentheses. note 
> that there is no need for echo because this syntax "emits" the result 
> which is then picked up by the string concatenation operator. the syntax 
> uses a question mark and a colon. it reminds me of filemaker's if syntax.
> 
> so, this:
> 
> if($flag_array[$key]==$value){echo $string;}else{echo $value;}
> 
> gets reduced to this:
> 
> echo ($flag_array[$key]==$value)?$string:$value;
> 
> only in the full code example i didn't use echo because it's not needed.
> 
> HTH,
> dan
> 
> 
> Jonathan Schwartz had written:
>> So...there's no proper syntax for embedding an "if" statement in the 
>> middle of defining a variable?
>>
>> Here's what I want to do....
>>
>> problem is the concatenation of 'blah' and if statement.
>>
>> $temphtml = 'blah'. if($this == $that){echo $this}else{echo 
>> $that}.'blah';
>>
>>
>>
>> J
>>
>>
>>
>>
>> At 11:03 AM -0600 2/16/07, Bob Patin wrote:
>>> That makes complete sense; I mix PHP & HTML like that all the time. 
>>> Some guys don't seem to like it, but I'm used to it and it works fine 
>>> in my forms.
>>>
>>> BP
>>>
>>>
>>> On Feb 16, 2007, at 10:53 AM, Jonathan Schwartz wrote:
>>>
>>>> Hi Bob,
>>>>
>>>> I'm trying to write the html, including the results of the php if 
>>>> statment to a variable ($temphtml).  At the end of the process, I 
>>>> want to echo out the $temphtml.  The original reason for this is to 
>>>> be able to count the records that are being evaluated  after 
>>>> returning from the FMP query.  The reason for this was to deal with 
>>>> a compound query that FMP could not handle nateively. Phew!
>>>>
>>>> Back to your suggestion...it doesn't look like it builds the 
>>>> $temphtml variable.
>>>>
>>>> That being said, and still not being able to embed a php if 
>>>> statement in the *middle* of building $html, I did succeed in 
>>>> removing all the php if statements out of the middle of the loop and 
>>>> placed them at the top of the loop, evaluated them there and set the 
>>>> values in temporary variables...and then built the $temphtml in the 
>>>> normal way, having eliminated the in-line if statements.
>>>>
>>>>
>>>> $temphtml = ''
>>>> foreach($searchResult['data'] as $key => $value)
>>>>  {
>>>>     if(this == that) { $tempdata = "xxx"}; //moved these if 
>>>> statements to top.
>>>>
>>>>     $temphtml = '<tr><td>blah</td></tr>
>>>>             <tr><td>'.$tempdata.'</td></tr>';
>>>> }
>>>>
>>>> If there is a better way, I'd love to know it.
>>>>
>>>> J
>>>>
>>>>> Jonathan,
>>>>>
>>>>> Try this:
>>>>>
>>>>>
>>>>> <?
>>>>> $temphtml ='';    //set my variable for collecting the html
>>>>> foreach($searchResult['data'] as $key => $value) {
>>>>>     $temphtml = $temphtml;
>>>>>     ?>
>>>>>     <tr><td>blah</td></tr>
>>>>>      <tr><td><?php if(empty($value['flag'][0] ))  { echo 
>>>>> "$".$value['price'][0]; }else{ echo "Call"; }?>
>>>>>     <tr><td>blah</td></tr>
>>>>>     <?php
>>>>> }
>>>>> ?>
>>>>>
>>>>>
>>>>> Bob Patin
>>>>> Longterm Solutions
>>>>> bob at longtermsolutions.com
>>>>> 615-333-6858
>>>>> http://www.longtermsolutions.com
>>>>>
>>>>>   CONTACT US VIA INSTANT MESSAGING:
>>>>>      AIM or iChat: longterm1954
>>>>>      Yahoo: longterm_solutions
>>>>>      MSN: tech at longtermsolutions.com
>>>>>      ICQ: 159333060
>>>>>
>>>>>>>
>>>>>>> On Feb 15, 2007, at 10:53 AM, Jonathan Schwartz wrote:
>>>>>>>
>>>>>>>> I could do that.  However, that would then add a second for 
>>>>>>>> loop: one to reduce the data set and write the results to an 
>>>>>>>> array and one to write the array for display...in addition to 
>>>>>>>> the FMP query. (Hey guys....do you believe that this kind of 
>>>>>>>> talk is coming from me...former beginner. ;-)   ).
>>>>>>>>
>>>>>>>> Seems that this is particularly resource intensive,  No?
>>>>>>>>
>>>>>>>> Jonathan
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> At 11:25 AM -0500 2/15/07, Andy Gaunt wrote:
>>>>>>>>> Jonathan,
>>>>>>>>>
>>>>>>>>> Rather than do a new page, can you do your for loop outside the 
>>>>>>>>> HTML first
>>>>>>>>> (writing everything to a new variable) then echoing this to 
>>>>>>>>> your page once
>>>>>>>>> completed?. If so then you could increment a counter variable 
>>>>>>>>> when the
>>>>>>>>> record matches your criteria ( $counter++; ) and then echo this 
>>>>>>>>> out before
>>>>>>>>> you echo out your content from the loop.
>>>>>>>>>
>>>>>>>>> Andy Gaunt
>>>>>>>>> Office: 321.206.3658
>>>>>>>>> Mobile: 407.810.4722
>>>>>>>>> andy at fmpug.com
>>>>>>>>> http://www.fmpug.com
>>>>>>>>
>>>>>>>> -- 
>>>>>>>>
>>>>>>>> Jonathan Schwartz
>>>>>>>> FileMaker 8 Certified  Developer
>>>>>>>> Associate Member, FileMaker Solutions Alliance
>>>>>>>> Schwartz & Company
>>>>>>>> jonathan at eschwartz.com
>>>>>>>> http://www.eschwartz.com
>>>>>>>> http://www.exit445.com
>>>>>>>> 415-381-1852
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> FX.php_List mailing list
>>>>>>>> FX.php_List at mail.iviking.org
>>>>>>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> FX.php_List mailing list
>>>>>>> FX.php_List at mail.iviking.org
>>>>>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>>>>>
>>>>>>
>>>>>> -- 
>>>>>>
>>>>>> Jonathan Schwartz
>>>>>> FileMaker 8 Certified  Developer
>>>>>> Associate Member, FileMaker Solutions Alliance
>>>>>> Schwartz & Company
>>>>>> jonathan at eschwartz.com
>>>>>> http://www.eschwartz.com
>>>>>> http://www.exit445.com
>>>>>> 415-381-1852
>>>>>>
>>>>>> _______________________________________________
>>>>>> FX.php_List mailing list
>>>>>> FX.php_List at mail.iviking.org
>>>>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>>>>
>>>>> _______________________________________________
>>>>> FX.php_List mailing list
>>>>> FX.php_List at mail.iviking.org
>>>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>>>
>>>>
>>>> -- 
>>>>
>>>> Jonathan Schwartz
>>>> FileMaker 8 Certified  Developer
>>>> Associate Member, FileMaker Solutions Alliance
>>>> Schwartz & Company
>>>> jonathan at eschwartz.com
>>>> http://www.eschwartz.com
>>>> http://www.exit445.com
>>>> 415-381-1852
>>>>
>>>> _______________________________________________
>>>> FX.php_List mailing list
>>>> FX.php_List at mail.iviking.org
>>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>>
>>> _______________________________________________
>>> FX.php_List mailing list
>>> FX.php_List at mail.iviking.org
>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>
>>
> _______________________________________________
> FX.php_List mailing list
> FX.php_List at mail.iviking.org
> http://www.iviking.org/mailman/listinfo/fx.php_list
> 


More information about the FX.php_List mailing list