Re: Parsing database variables
| From: | Jim Lucas | Date: | Sat, 31 Mar 2007 08:14:59 +0000 |
| Subject: | Re: Parsing database variables | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-251826@lists.php.net to get a copy of this message | ||
Jake McHenry wrote:
Ok, this is working good, except for one problem... I have variable $pay_rate and $pay_rate_bap ... It finds $pay_rate first and then it never finds $pay_rate_bap because it changes it to say.. 21_bap... Anyone know of anything else that may work? I have been messing around with eval, and I havn't gotten it to work even once yet... Always comes back with error at line 5 of eval'd.... And line 5 of the paragraph is a blank line... Line 4 is plain text... Not even a variable until line 12...Fine, just switch the order you are adding them to the two different arrays. instead of this: $find[] = '$pay_rate'; $find[] = '$pay_rate_bap'; $replace[] = $pay_rate; $replace[] = $pay_rate_bap; do this $find[] = '$pay_rate_bap'; $find[] = '$pay_rate'; $replace[] = $pay_rate_bap; $replace[] = $pay_rate; find the longer one first
I guess next I will play around with preg_replace, but I'm thinking I will have the same problem as I did with str_replace... As long as the variable names have any kind of similar names.... Correct? I can resolve this I suppose, but the data is already in place and trying to work around it... Thanks, Jake-----Original Message----- From: Jim Lucas [mailto:lists@cmsws.com] Sent: Friday, March 30, 2007 7:32 PM To: Jake McHenry Cc: php-general@lists.php.net Subject: Re: [PHP] Parsing database variables Jake McHenry wrote:Hi everyone, I have been searching and trying to do this for the pasthour withoutsuccess yet.... I have a database table with this in it: <p>$name<p> Period Ending Date: $ppe<p> Etc....... And in my script, these variables exist and have values. Isthere a way forme to get the output from mysql_query to use the currentscript variables inplace of the same variable name within the database output? Thanks, JakeIf I read the manual correct about how to setup the input values for str_replace() you should be able to do the following. This is completely untested, since I have now system like yours. But here is goes... #setup the entries that you want to find. $find[] = '$name'; $find[] = '$ppe'; #setup the values to be replaced. #Mind you to keep the indexes the in sync with $find... $replace[] = $name; $replace[] = $ppe; echo '<pre>'; while ( $row = mysql_fetch_assoc($resultHandle) ) { $row = str_replace($find, $replace, $row); // do something with $row. Display it maybe... var_dump($row); } echo '</pre>'; Basically replace $find[0] with $replace[0] in any of the values of the return $row then replace the previous $row values with the newly modified values... Then go to the next index of $find[1] and $replace[1] and do the same thing until you are out of indexes. But this is a much better way of doing this than using eval(). eval is an evil little function! -- Enjoy, Jim Lucas Different eyes see different things. Different hearts beat on different strings. But there are times for you and me when all such things agree. - Rush -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.5.446 / Virus Database: 268.18.23/740 - Release Date: 3/30/2007 1:15 PM