2012-09-20 7 views
0

웹 사이트에 php 및 mysql과 함께 매우 간단한 광고 서버를 구성하고 있습니다. 이 사이트는 현재 동적 콘텐츠의 많은 4 ~ 5 정적 페이지가 있으므로 URL은 다음과 같이 : index.php?pid=1 또는URL 목록을 저장하고 검색하는 가장 좋은 방법

내가 뭘하려는 것은 그 추적하기 위해 광고를 내 테이블에 필드를 추가입니다 content.php?spec=2 광고가 게재 될 페이지

쉼표로 구분 된 값의 목록으로 광고가있는 URL을 저장해야합니까?

일단이 변수를 검색하면 값을 배열로 분리하는 가장 좋은 방법은 무엇입니까?

문자열을 분할하는 가장 좋은 방법은 무엇입니까? $_GET 이름과 변수를 (위의 예를 사용하여 'index, pid, 1'또는 'content, spec, 2'처럼) 분할 할 수 있습니다. ??

추가 정보 : 예를 들어 는 doctors.php는 다음과 같이 구성되어있다 : 특정 전문이 의사의 의사 특산품의

  • doctors.php 목록
  • doctors.php?spec=# 목록
  • doctors.php?pid=# 하나 특정 의사 정보

나는 몇 십 개의 명물, 그리고 수백 명의 의사들. 특정 페이지/URL에 광고를 게재하고 싶습니다. 예를 들어 doctors.php?pid=7

ID가 6 인 전문 의사를 기반으로 한 광고를 게재하고 싶습니다. 그것은 60+ 페이지가 될 수 있으므로 별도의 테이블 행을 갖는 것이 실제로 의미가 없습니다. 광고의 링크를 변경해야한다면 60 번 변경하거나 검색하지 않아도됩니다.

+0

왜 각 URL을 자체 행에 저장하지 않는 것이 좋을까요? –

답변

2

CSV로 저장하지 마십시오.

각 광고/URL 조합에 대해 별도의 데이터베이스 행을 추가하십시오.

그런 다음 콘텐츠를 검색하는 것은 간단합니다.

+0

그래, 정규화 된 테이블을 갈 방법입니다. – knittl

+0

예를 들어 60 페이지에 대해 동일한 광고가 나열된 경우 중복성이 많지 않습니까? – Michelle

+0

예. 그러면 단계를 더 정상화하고 광고 테이블과 페이지 테이블을 갖게됩니다. 그런 다음 데이터를 구조화하는 방법에 따라 광고 테이블 ID를 페이지 테이블에 연결하거나 그 반대로 연결하십시오. – Snowcrash

0

간단한 파일에 URls를 한 줄에 하나씩 저장하십시오. PHP 함수 "file"을 사용하여이 파일을 배열로 읽을 수 있습니다. 안녕하세요 & t = index.php를 V :

URL을 분할 당신은 당신이 전을위한 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); 

를 사용 세계

또한이 코드를 테스트하지 않았습니다. 방금 함수 등을 확인하지 않고 썼습니다.

+1

var_dump (parse_url ($ url)); 단 한 줄, 대신 8 줄. – MrSil

+0

고마워요 :) 마음 속에 그걸 잊지 마세요^_ ^ –

0

다음은 내가 생각하는 것입니다 ...

  • a = 'doctors';
  • b = 'spec'; :

    내 광고 표는 내가 doctors.php?spec=12에 배치 광고가있는 경우 (A, B는 C)

    , 나는 다음을 저장할 수 있습니다 세 가지 변수를해야합니다

  • c = '12';

만약 광고 ALL 전문 페이지에 표시하는 것을 의미하고, 내가 저장 것 : 뭔가가 NULL 인 경우

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

, 그것은 세트를 모두 표시 간단합니다. 그것은 우아한 솔루션처럼 보입니다. 작동한다면 코드를 게시 할 것입니다.

관련 문제