nyc_fan Posted July 10, 2006 Share Posted July 10, 2006 Hi,I really hope one of you nice people will be able to help as i've searched and searched for the answer to this question, but i just can't figure it out!I have a mysql database which contains the main content of pages for my website.So, when i need to select a page, the script finds the right row in the table and outputs it to display for the user. To display the text that is retrieved from the database, i use this normal bit of code - <?php echo($dbarray['page']); ?>This all works fine, and if i include HTML within the 'page' field of the database, this is output to the page, so i can make things bold etc.However, i want to be able to use a PHP script within the data that is retrieved from the database. For example, as part of the page text, i want to be able to use the users name, which is set in the main document. However, when i use this code -<?php echo($username); ?>as part of the page text that is saved in the database, nothing hapens - there's just white space on the page!People have suggested i use this code instead - <' . "? echo($username) ?" . '>';however all this does is output the whole PHP code to the screen, and the code isn't actually processed?I hope this all makes sense, and if anyone has the answer as to how i can get this to work, it would be greatly appreciated.Thanks in advance guys! Quote Link to comment https://forums.phpfreaks.com/topic/14202-php-within-php/ Share on other sites More sharing options...
ShogunWarrior Posted July 10, 2006 Share Posted July 10, 2006 When you echo something it is sent straight to the browser, code will not be excuted unless you [url=http://php.net/eval]eval[/url] it.You could do this: have placeholders in the database pages like {user}, and then replace them with the real variable values like so:[code]$page = str_replace('{user}',$username,$dbarray['page']);echo ($page);[/code] Quote Link to comment https://forums.phpfreaks.com/topic/14202-php-within-php/#findComment-55701 Share on other sites More sharing options...
nyc_fan Posted July 10, 2006 Author Share Posted July 10, 2006 ShogunWarrior, to be honest, this wasn't the response i was looking for - simply because it has caused me more work! and i just wanted to do what i guess is impossible!However, your response has worked a treat and i've now got my page looking as it should.Thanks very much! Quote Link to comment https://forums.phpfreaks.com/topic/14202-php-within-php/#findComment-55765 Share on other sites More sharing options...
effigy Posted July 10, 2006 Share Posted July 10, 2006 Are you looking for something like [url=http://www.phpfreaks.com/forums/index.php/topic,99295.msg390984.html#msg390984]this[/url]? Quote Link to comment https://forums.phpfreaks.com/topic/14202-php-within-php/#findComment-55780 Share on other sites More sharing options...
ShogunWarrior Posted July 10, 2006 Share Posted July 10, 2006 The code you posted would only work if it was inline in a page, the best thing to do is use placeholders otherwise you'll have to find each piece of PHP in the page and eval them one by one, reinserting the result. Quote Link to comment https://forums.phpfreaks.com/topic/14202-php-within-php/#findComment-55790 Share on other sites More sharing options...
redarrow Posted July 10, 2006 Share Posted July 10, 2006 there you go a nice example php within html.<?$name="redarrow";$age="31";$comment="i love php";?><html><head><body><table border="4"><td><? echo $name; ?></td><td><? echo $age; ?></td><td><? echo $comment; ?></td></form</td></html></body></head> Quote Link to comment https://forums.phpfreaks.com/topic/14202-php-within-php/#findComment-55800 Share on other sites More sharing options...
ShogunWarrior Posted July 10, 2006 Share Posted July 10, 2006 Unless I'm mixing stuff up he's getting the page from a database, how does it magically get inline in the page?Placeholders. Quote Link to comment https://forums.phpfreaks.com/topic/14202-php-within-php/#findComment-55804 Share on other sites More sharing options...
redarrow Posted July 10, 2006 Share Posted July 10, 2006 are you useing a while loop then .while($record=mysql_fetch_assoc($result) {}?><html><body><? echo $record['user_name']; ?></body><html><?}?> Quote Link to comment https://forums.phpfreaks.com/topic/14202-php-within-php/#findComment-55816 Share on other sites More sharing options...
nyc_fan Posted July 10, 2006 Author Share Posted July 10, 2006 redarrow, thanks for your reply, but i think ShogunWarrior is right as i am pulling the code from a database where it is stored as text, assigning it to an array and then trying to execute it.I don't think this is possible, but i have used the first reply from ShogunWarrior and have worked some magic and now i can do exactly what i want to do - and it seems even easier than i imaged (although there is a bit of work involved to start with!) Quote Link to comment https://forums.phpfreaks.com/topic/14202-php-within-php/#findComment-55819 Share on other sites More sharing options...
redarrow Posted July 10, 2006 Share Posted July 10, 2006 ok mate Quote Link to comment https://forums.phpfreaks.com/topic/14202-php-within-php/#findComment-55831 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.