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@xxxxxxxxx]
Sent: Friday, March 30, 2007 7:32 PM
To: Jake McHenry
Cc: php-general@xxxxxxxxxxxxx
Subject: Re: Parsing database variables
Jake McHenry wrote:
Hi everyone,
I have been searching and trying to do this for the past
hour without
success 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. Is
there a way for
me to get the output from mysql_query to use the current
script variables in
place of the same variable name within the database output?
Thanks,
Jake
If 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
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php