2012-07-25 2 views
0

내 문제는 이것입니다. loggfile을 반복하여 treestructure와 비교 한 다음 구조의 ID에 해당하는 ID를 제공하는 코드가 있습니다. 나쁜 트래픽을 많이 얻지 않기 위해서 나는 302 세 이상을 모두 분류합니다.PHP는 loggfile을 필터링하는 데 도움이 필요합니다.

문제는 이제 구조에서 특정 pagetype이있는 특정 302를 계산하기를 원합니다. 이것은 트리 구조의 url과 loggfile의 url을 일치시킬 수 있기 때문에 큰 문제는 아니지만 일부 loggfiles는 친숙한 url을 사용하지 않습니다. 구조가 친숙한 url에있는 동안 문제가 발생하지만 이드와 일치시킬 수 있습니다. 구조체에있는 id를 가진 쿼리 매개 변수. 그런 다음 원하는 특정 pagetype과 일치하는 모든 문자열을 만듭니다.

문제는 이것이 작동하도록 MySQL 문을 가져올 수 없다는 것입니다.

$sqlQ1 = "SELECT `lid` FROM logfile WHERE date = '$date' AND ´query´ IN '$check'"; 

예를 들어 쿼리이 "ID = 4 & epslanguage = SV"그래서 나는 단지 ID = X 부분을 검사 할 같이 할 수 있습니다.

정말 쉽게 붙어있어 작동하지 않을 수 있습니다. 어떤 도움도 받으실 수 있습니다!

+0

쿼리하는 mysql 데이터베이스에는 무엇이 있습니까? – Cups

답변

1

당신의 질문은 다음과 같습니다. 어떻게 그 부분에서 ID를 추출합니까?

".. 그래서 id = X 부분 만 확인하고 싶습니다." 당신이 그 문자열을 격리하면

당신은 사용할 수 있습니다

$string = "id=4&abclang=sv"; 

parse_str($string); 

echo $id; // 4 

편집 을 다른 응답에 비추어 :

$strings[] = "id=4&abclang=sv"; 
$strings[] = "id=45&abclang=en"; 

$vals = array(); 

foreach($strings as $string){ 
parse_str($string); 
$vals[] = $id ; 
} 

$in_clause = join(",", $vals) ; 
$sql = "SELECT lid FROM logfile WHERE something IN ($in_clause) "; 
echo $sql; // SELECT lid FROM logfile WHERE something IN (4,45) 
+0

이제는 내 질문이 매우 저조하게 공식화되었다는 것을 알게되었다. 그러나이 질문은 ID에있는 문자열을 쿼리에서 일치시킬 수 있기를 원하지만 대신 전체 로그 파일을 반복 할 필요가 없다. 하나의 데이터베이스 질문을하고 내 데이터베이스에있는 모든 고유 한 뚜껑의 형태로 결과를 얻으십시오. 그런 다음 모든 로그 파일 행을 정렬하려는 뚜껑을 사용하십시오. –

+0

일부 도움이되었지만 문제는 이것입니다. 데이터베이스 질문은 "SELECT lid from logfile where IN ('4,45');" 로그 파일 테이블에 4와 45의 쿼리가있는 행이 있지만 아무 결과도 얻지 못했지만 IN에 대해 와일드 카드를 사용하여 시도했지만 작동하지 않습니다. –

+0

해당 SQL 조각이 올바르지 않습니다. 4시 45 분쯤에 여분 견적이 어디 있니? 그것을 찾아서 제거하십시오. – Cups

0

그래서 이미 ID가와를 필터링 할 이 행을 얻기위한 MySQL 쿼리?

$check = Array(1, 2, 3, 4); 
$check = implode(",", $check); 
$sqlQ1 = "SELECT `lid` FROM logfile WHERE date = '$date' AND ´query´ IN ($check)"; 
+0

예, 로그 파일 테이블에서 뚜껑을 가져 오려고합니다. 뚜껑이 독특하다. 문제가 해결된다면 문제가 해결되지만, 문제는 id = 4 또는 id = 45가 아닌 id = 45 & lang = en & melon = tasty 일 때 사용한다. 전체 로그 파일을 반복하고 ID를 폭발 시키면 ID가 처리되므로 처리 시간이 많이 걸릴 것입니다. –

관련 문제