2013-04-22 39 views
0

我的網站有很多頁面。所有這些頁面都在頂部具有相同的標題,顯示登錄用戶的選項以及指向網站不同部分的鏈接。如何在mySQL中調用PHP變量?

我意識到,如果我想改變這個頭的外觀,我需要通過並應用到每個頁面的變化。這似乎是我可以避免的一個問題,所以我決定將代碼存儲在mySQL數據點中,並在每個頁面上簡單地回顯。

到目前爲止,它工作得非常好,但其中的任何PHP代碼(如顯示用戶名)只返回物理代碼本身,而不是結果。

調用代碼工作得很好,所以這裏的實際MySQL的條目被呼叫:

<table width="1332" border="0" cellspacing="0"><tr> 
<td width="1002" style="background-color:#4DDB4D;"> 
<a href="http://www.AGLgaming.com/login/home"><img src="http://i378.photobucket.com/albums/oo223/Abyssion180/AGLLogoAlternate.png" alt="AGL Logo" width=170 height=90 align="left" /></a> 
<img src="http://i378.photobucket.com/albums/oo223/Abyssion180/AGLBanner.png" width=825 height=90 /> 
</td> 
<td width="330" style="background-color:#4DDB4D" align="right"> 
<div class="ex1"> 
<a href="http://www.AGLgaming.com/login/home/profile"><font color="blue" size="5">' . $user[0][0] . '</font></a>,<br> 
<font size="1">Logged in: </font><a href="http://www.AGLgaming.com/login/home/logout"><font size="2" color="blue">Logout</font></a> 
</div></td></tr> 
<tr><td valign="center" style="background-color:#6EFF6E;height:31px;"> 
<div align="left"> || 
<a href="http://www.AGLgaming.com/login/home/forums"><font color="blue" size="5">Forums</font></a> ||| 
<a href="http://www.AGLgaming.com/login/home/guides"><font color="blue" size="5">Guides</font></a> ||| 
<a href="http://www.AGLgaming.com/login/home/external"><font color="blue" size="5">External</font></a> ||| 
<a href="http://www.AGLgaming.com/login/home/members"><font color="blue" size="5">Members</font></a> ||| 
<a href="http://www.AGLgaming.com/login/home/tournament"><font color="blue" size="5">Tournament</font></a> ||| 
<a href="http://www.AGLgaming.com/login/home/constitution_of_the_AGL"><font color="blue" size="5">Constitution of the AGL</font></a></div> 
</td> 
<td valign="center" style="background-color:#6EFF6E;height:31px;"> 
<div class="ex1" align="right"> 
<a href="http://www.AGLgaming.com/login/home/profile"><font color="blue" size="3">Profile</font></a> | 
<a href="http://www.AGLgaming.com/login/home/denarii"><font color="blue" size="3">Denarii</font></a>: ' . $user[0][7] . ' | 
<a href="http://www.AGLgaming.com/login/home/messages"><font color="blue" size="3">Messages</font></a>: ' . $user[0][9]; if($user[0][10]>0) echo '<font size="2"><b>(' . $user[0][10] . ' New!)</b></font>'; . ' | 
<a href="http://www.AGLgaming.com/login/home/settings"><font color="blue" size="3">Settings</font></a> 
</div> 
</td></tr></table> 
+4

爲什麼這不僅僅是一個單獨的PHP文件,而是包含在每個頁面的頂部?爲什麼它需要存儲在數據庫中? – 2013-04-22 23:04:47

+0

我其實不知道你可以這樣做 - mySQL只是我的即興創作方法。 – Seriamus 2013-04-22 23:14:18

回答

4

如果我得到了這個權利,我會(不想變得卑鄙)真的推薦你重新考慮你的代碼。你真的從你的MySQL數據庫查詢HTML/PHP代碼嗎? 如果是這樣,讓我建議更換你另一種方式來獲得一些代碼的不僅僅是網站的Onne更多: 簡單地去把這些代碼到一個額外的PHP文件 - 例如header.php文件,調用一個與

<?php require_once('header.php');?> 
+1

哦,哇,谷歌搜索已經正式讓我失望了,因爲我從來沒有碰到過這個功能。但我喜歡這個解決方案比我自己的更多,謝謝。 – Seriamus 2013-04-22 23:12:37

+0

沒問題,它確實是一個有用的函數,類似於require和include - php。淨有一個非常偉大的文檔;) 順便說一句,如果你標記答案是正確的,如果它幫助你解決你的問題;) – 2013-04-22 23:18:00

+0

是的,StackOverflow不會讓我把它標記爲已回答,直到一定數量時間已經過去了。 – Seriamus 2013-04-22 23:21:25

0

什麼,你應該做的,而不是使用數據庫所以這將是PHP的include函數。 假設你有一個文件下面的代碼調用的header.php

Awesome header 
<?php 
    echo "working code"; 
?> 

在其他每個文件的,你可以把

<?php 
    include "header.php"; 
?> 
1

那麼它看起來像你對我所尋找的是一個排序模板系統。實現此目的的最簡單方法是在HTML中使用特定的關鍵字,然後您的PHP可以提取和替換。

例如,您可以使用str_replace()函數。

$processedHtml = str_replace('{__USERNAME__}',$userName,$htmlFromDB); 

在這個例子中,你會到處插入你想要的$userName變量出現在字符串{__USERNAME__}


這就是說,我認爲你正面臨一個相當特殊的情況,並且將HTML存儲在數據庫中可能不是最佳選擇。您可能要考慮使用PHP的include()函數。這將允許你在當前腳本中插入一個額外的文件。它將(正如名稱所描述的那樣)只是簡單地將該代碼包含在您放置include語句的位置。這將允許您將共享標題代碼集中在一個文件中,只需將它「包含」到需要的任何地方,並且只需對一個文件進行編輯即可。