Php 检查两行是否直接相邻
我有一个MySQL查询,如下所示:Php 检查两行是否直接相邻,php,mysql,Php,Mysql,我有一个MySQL查询,如下所示: $sql = "SELECT team, sum(points) as allpoints FROM table WHERE [...] GROUP BY team ORDER BY allpoints"; 将其插入phpMyAdmin中,我得到了预期的结果。(我看到allpoints中既没有重复的内容,团队中也没有重复的内容!) 现在我想知道,两个名字的行是否是直接相邻的行。 因此,我这样做: $result=mysqli_query($con, $sql
$sql = "SELECT team, sum(points) as allpoints FROM table WHERE [...] GROUP BY team ORDER BY allpoints";
将其插入phpMyAdmin中,我得到了预期的结果。(我看到allpoints中既没有重复的内容,团队中也没有重复的内容!)
现在我想知道,两个名字的行是否是直接相邻的行。
因此,我这样做:
$result=mysqli_query($con, $sql);
$doCount=false;
$counter=0;
while($row = mysqli_fetch_array($result)) {
if(strcmp($team1, $row['team'])==0 OR strcmp($team2, $row['team'])==0){
$doCount=switchBool($doCount);
}
if($doCount){
$counter++;
}
}
if($counter < 2){
return true;
}else{
return false;
}
function switchBool($thebool){
if($thebool){
return false;
}else{
return true;
}
$result=mysqli\u查询($con,$sql);
$doCount=false;
$counter=0;
while($row=mysqli\u fetch\u数组($result)){
如果(strcmp($team1,$row['team'])==0或strcmp($team2,$row['team'])==0){
$doCount=switchBool($doCount);
}
如果($doCount){
$counter++;
}
}
如果($counter<2){
返回true;
}否则{
返回false;
}
函数开关bool($thebool){
如果($thebool){
返回false;
}否则{
返回true;
}
描述:当我抓到两个团队中的一个时,
$doCount
切换到true
,我的$counter
增加到值1。当我抓到第二个团队时,$doCount
切换回false
和$counter
停止增加。因此,如果一个团队直接出现在我的wh中的另一个团队之后在ile循环中,$counter
应该只为1
,并且它应该返回true
。但是它总是返回true,即使我确信它不应该返回true。我的错误是什么?请注意,您可以使用$doCount=!$doCount;
而不是switchBool($doCount)
您不是每次当行中有$team1
或$team2
时都切换布尔值吗?谢谢,我不知道是的。结果是没有重复的团队名称$counter<2
应该是$counter==1
。您计算找到的第一个团队,如果下一个团队找到,则在计算之前关闭计数器它。