-2

我有一个查询检查表中的一些数据(名称和与之关联的数字)并返回我需要设置为变量的其中一个。

但是,当我需要考虑尚未在表中的项目(新来者)时,我遇到了麻烦,因为它们应该被视为具有 0 作为数据,但很明显它们在数据库中没有。

脚本如下:

        $jQuery = mysql_query("SELECT team, points FROM DCO_standings_teams WHERE competition='1' AND team='$teamname' AND year='$lastyear'");
{
    $points="$row[1]";
    $pointsmult = $points*50;
    $pointsoffer = $wage_offer/100;
    $bid_total = $pointsoffer+$pointsmult+$loyaltybonus;
}

在这种情况下,假设 A 队从去年获得 12 分。它将“12”设置为 $points 并继续进行所有其他计算。

我需要告诉网站,如果在 DCO_standings_teams 表中没有找到记录,那么它应该将 $points 设置为 0。

任何帮助表示赞赏,谢谢!

4

4 回答 4

0

你可以这样做:

$result = mysql_query("SELECT team, points FROM DCO_standings_teams WHERE competition='1' AND team='{$teamname}' AND year='{$lastyear}'");

if(mysql_num_rows($result)) {
  $row = mysql_fetch_row($result);
  $points = $row[1];
}
else {
  $points = 0;
}

$pointsmult = $points*50;
$pointsoffer = $wage_offer/100;
$bid_total = $pointsoffer+$pointsmult+$loyaltybonus;
于 2013-01-02T19:43:17.860 回答
0

你已经这样做了...

if($points === null){
    $points = 0;
}

侧点:

$points="$row[1]";没有意义....只是做:$points = $row[1];

于 2013-01-02T19:33:42.787 回答
0

我会将值转换为整数。像这样:

$points = (int) $row[1];
于 2013-01-02T19:34:20.973 回答
0

让我们想想你在做什么:

当您查询数据库时,您会得到结果。如果你没有结果,那么你一定有你说的“新人”。

所以,让我们在继续代码之前计算“点”的数量,不是吗?

正如其他人所暗示的那样,您应该使用 mysql_* 以外的其他函数,但这不是我关心的问题。

$jQuery = mysql_query("SELECT team, points FROM DCO_standings_teams WHERE competition='1' AND team='$teamname' AND year='$lastyear'");
$points = $row[1];
if($points == null) { // if there are no points (not 0, because that means there are 0 points)
     die("You are a newcomer."); 
     // do newcomer logic here 
} elseif($points > 0) { 
     //do other logic here
}
于 2013-01-02T19:39:56.510 回答