Re: Parsing database variables

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux