所以我的问题是我得到了一个循环通过loggfile然后将它们与树结构进行比较的代码,然后给它们一个与结构中的id相对应的id。为了不获得大量不良流量,我整理了所有302及以上。
问题是现在我想要一些特定的302s来计算在结构中有特定的pagetype。这不是一个大问题,因为我可以将loggfile中的url与树结构中的url相匹配,但是一些loggfiles不使用友好的url,而结构是在友好的url中,这会产生问题,但我可以匹配id中的结构中带有id的查询参数。然后我创建一个与我想要的特殊页面类型匹配的所有ID的字符串。
问题是我无法使Mysql语句起作用,它看起来像这样。
$sqlQ1 = "SELECT `lid` FROM logfile WHERE date = '$date' AND ´query´ IN '$check'";
示例查询可能看起来像“id = 4& epslanguage = sv”,所以我只想检查id = X部分。
这是一个简单的问题,我只是卡住了,无法让它发挥作用,任何帮助都表示赞赏!
答案 0 :(得分:1)
我认为你的问题是:如何从一行的那一部分中提取id?
“..所以我只想检查id = X部分。”
一旦你隔离了那个字符串,你就可以使用:
$string = "id=4&abclang=sv";
parse_str($string);
echo $id; // 4
EDIT 根据其他回应:
$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)
答案 1 :(得分:0)
所以你已经拥有了ID并希望过滤MySQL查询以获取这些行吗?
$check = Array(1, 2, 3, 4);
$check = implode(",", $check);
$sqlQ1 = "SELECT `lid` FROM logfile WHERE date = '$date' AND ´query´ IN ($check)";