在php中查询 - 告诉系统如果没有可用的数据该怎么做

时间:2013-01-02 19:30:16

标签: php mysql

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

然而,当我需要考虑表中尚未出现的项目时,我遇到了麻烦 - 新人 - 因为他们应该被认为是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 个答案:

答案 0 :(得分:0)

你已经这样做了......

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

侧点:

$points="$row[1]";毫无意义....只需:$points = $row[1];

答案 1 :(得分:0)

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

$points = (int) $row[1];

答案 2 :(得分: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
}

答案 3 :(得分: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;