2012-09-20 47 views
0

我正在一個非常簡單的廣告服務器與PHP和MySQL在網站上。該網站目前有4個或5,有很多的動態內容的靜態頁面,這樣的網址是這樣的: index.php?pid=1content.php?spec=2最好的方式來存儲和檢索網址列表

我想要做的是一個字段添加到我的廣告的表來跟蹤的那廣告將顯示在頁面上。

我應該存儲在同一個廣告爲逗號分隔值的列表中的URL?

一旦我找回這個變量,什麼來分隔值到一個數組的最佳方式?

什麼是分割字符串的最佳方式,所以我可以拆分頁面名稱$_GET名稱和變量(如'index,pid,1'或'content,spec,2'使用上面的示例。

附加信息: 作爲一個例子,doctors.php的結構是這樣的:具有特定 專業醫生的

  • doctors.php醫生專業的上市
  • doctors.php?spec=#上市
  • doctors.php?pid=#一具體醫生的信息

我有一個幾十個專業和幾百名醫生。我希望能夠在特定網頁/網址上放置廣告,如doctors.php?pid=7

但是我也希望能夠放置一個廣告,例如,所有具有ID爲6的專業醫生這可能是60多頁,所以它沒有真正意義,有單獨的錶行。如果我需要更改廣告鏈接,我不希望將其更改爲60次或搜索該鏈接。

+0

爲什麼不把每個URL存儲在自己的行中? –

回答

2

不要存儲爲CSV。

每個廣告/ URL組合加入獨立的數據庫行。

然後檢索內容將是微不足道的。

+0

是的,規範化表格是要走的路。 – knittl

+0

如果我列出了相同的廣告,例如60頁,那麼不會有很多冗餘嗎? – Michelle

+0

是的,所以你會進一步標準化,並有一個廣告表和一個網頁表。然後根據您的數據結構如何將您的廣告ID添加到頁面表中,或反之亦然。 – Snowcrash

0

在簡單文件中每行存儲一個URls。比你可以使用PHP函數「文件」來讀取這個文件作爲一個數組。

對於URL拆分使用http://php.net/parse_url功能

-1
$url = "index.php?pid=1"; 
$pos = strpos($url, "?"); 

if ($pos != false) { 
    $pieces1 = explode("?", $url); 
    $pieces2 = explode("=", $pieces1[1]); 
    $array = array($pieces1[0], $pieces2[0], $pieces2[1]); 
}else{ 
    $array = array($url, '', ''); 
} 

print_r($array); 

你需要,如果你希望它在您的網址多個變量爲前工作,提高驗證碼?的index.php V =你好& T =世界

而且,我沒有測試此代碼。我只是寫它,而不檢查功能等

+1

var_dump(parse_url($ url));只有一行,而不是8行。 – MrSil

+0

謝謝:)我會記住^ _ ^ –

0

這裏就是我想將工作...

我的廣告表將有三個變量(A,B,C)

如果非要放在doctors.php?spec=12的廣告,我會存儲以下內容:

  • a = 'doctors';
  • b = 'spec';
  • c = '12';

如果廣告是爲了顯示所有專業的網頁,我會保存:

  • a = 'doctors';
  • b = 'spec';
  • c = NULL;

如果事情是NULL,它會簡單地表示所有的一套。這似乎是一個優雅的解決方案,我會發布代碼,如果它的工作。

相關問題