Php if(query1value=query2value){}else{}

Php if(query1value=query2value){}else{},php,mysql,equals,Php,Mysql,Equals,因此,我想知道如何在if语句中将一个查询的结果与另一个查询的结果进行比较。像这样: $team = mysql_query("SELECT teamId FROM team WHERE teamName='$teamName'"); $tplayer = mysql_query("SELECT teamId FROM player WHERE playerName='$playerName'"); if($team==$lplayer){ //Do something } else{ //Do

因此,我想知道如何在if语句中将一个查询的结果与另一个查询的结果进行比较。像这样:

$team = mysql_query("SELECT teamId FROM team WHERE teamName='$teamName'");
$tplayer = mysql_query("SELECT teamId FROM player WHERE playerName='$playerName'");

if($team==$lplayer){
//Do something
}
else{
//Do something else
}
这不管用。。。为什么?

现在,为什么这不起作用:

$tleague = mysql_query("SELECT teamId from team
    WHERE leagueId=(SELECT leagueId FROM league WHERE leagueName='$leagueName')");
$tplayer = mysql_query("SELECT teamId FROM player WHERE playerName='$playerName'");

$row1 = mysql_fetch_array($tleague);
$row2 = mysql_fetch_array($tplayer);

if($row1['teamId']==$row2['teamId']){}
else{}
那样做

   $team = mysql_query("SELECT teamId FROM team WHERE teamName='$teamName'");
   $tplayer = mysql_query("SELECT teamId FROM player WHERE playerName='$playerName'");
   $row1 = mysql_fetch_array($team);
   $row2 = mysql_fetch_array($tplayer);

if($row1['teamId']==$row2['teamId']){
 //Do something
}
 else{
 //Do something else
}
编辑:

在第二次编辑时,问题在于查询本身

试试这个

    $tleague = mysql_query("SELECT t.teamId from team inner join league l On t.leagueId = l.leagueId  
 WHERE t.leagueName='".$leagueName."' ");

您需要在查询中使用
mysql\u fetch\u assoc()
,并比较返回的值。类似下面的例子。您要比较的是两个返回的资源对象:

$team = mysql_query("SELECT teamId FROM team WHERE teamName='$teamName'");
$tplayer = mysql_query("SELECT teamId FROM player WHERE playerName='$playerName'");
$t = mysql_fetch_assoc($team);
$p = mysql_fetch_assoc($tplayer);
if($t['teamId'] ==$p['teamId']){
//Do something
}
else{
//Do something else
}

但是,您不应该使用
mysql\u*
方法,而应该考虑使用//
它不起作用,因为它不是查询的结果。您需要将mysql_结果传递给变量,即:

$result1 = mysql_result($team, 0);
$result2 = mysql_result($tplayer, 0);
if ($result == $result2) { ...
像这样试试

$teamQuery = mysql_query("SELECT teamId FROM team WHERE teamName='$teamName'");
$lplayerQuery = mysql_query("SELECT teamId FROM player WHERE playerName='$playerName'");

$team = mysql_fetch_assoc($teamQuery);
$lplayer = mysql_fetch_assoc($lplayerQuery);

if($team['teamId']==$lplayer['teamId']){
//Do something
}
else{
//Do something else
}

您没有从查询中获取任何结果。做点像

$team_result = mysql_fetch_array($team);
$tplayer_result = mysql_fetch_array($tplayer);
然后,使用提取的结果生成
if
条件

if($team_result['teamId'] == $tplayer_result['teamId'])
{
    //do something
}
另外,请停止使用已弃用的
mysql
,对于新项目,请切换到
PDO
mysqli

更新

新的查询有错误。你为什么不使用

再次更新

我将所有查询合并到一个查询中,并将数据封装在查询
“$playerName.”
“$leagueName.”


因为你有一个结果资源。您需要实际使用或类似的方法从中获取数据。另外,不要再使用
mysql\uuz
函数,它们已被弃用^^请检查更新答案,并让我知道是否有问题(我知道原因:),因为您应该使用PDO或mysqli:)而不是mysqli,并转义您的变量
mysql\u real\u escape\u string
以防止sql注入:)True,但它不应影响对答案的投票。要在PDO中实现它,您必须编写完整的教程。编辑:我读错了,以为是在检查身份证,但还是…不管怎样,它解决了你们的问题:),祝你们好运rest@echo_me你好,你能看看我的更新版本吗?我只是不明白我的问题是什么,在第一个查询中,这个select get结果的leguename是=$leaguename,不是吗?应该是这样,但有些东西不起作用。有三张桌子。一个叫联盟,一个叫团队,一个叫团队。我们只有leagueName作为输入和playerName。玩家表是按teamid连接到团队的,团队表是按leagueid连接到联盟的。我将所有查询合并到一个中以符合您的条件,请确认并告知现在是否工作仍然不工作:警告:mysql\u fetch\u array()希望参数1是资源,布尔值指示您是否再次复制整个更新?我放置了一个if语句,以便在不获取时不会给出错误
$tleague = mysql_query("SELECT a.`teamId` from `team` a LEFT JOIN `league` b ON a.`leagueId` = b.`leagueId` WHERE b.`leagueName` = '$leagueName'");
$tplayer = mysql_query("SELECT `teamId` FROM `player` WHERE `playerName`='$playerName'");

$row1 = mysql_fetch_array($tleague);
$row2 = mysql_fetch_array($tplayer);

if($row1['teamId']==$row2['teamId'])
{
// do something
}
else
{  
// do something else
}
$query = mysql_query("SELECT a.`teamId` from `team` a LEFT JOIN `league` b ON a.`leagueId` = b.`leagueId` LEFT JOIN `player` c ON b.`teamId` = c.`teamId` WHERE b.`leagueName` = '".$leagueName."' and c.`playerName`= '".$playerName."'");
if($row = mysql_fetch_array($query))
{
    echo 'Found: ' . $row['teamId'];
}
else
{ 
    echo 'Not Found.';
}