0

我的数据库中有一个名为 Accessories_other 的表。在表中,我有列:

1) 项目 2) 可用

这是有关各列中数据如何的说明。

物品

老鼠

键盘

电缆

可用的

4

6

3

问题是,我想选择 Item = 'Mouse' 以及列 'Available'=4。如果可用鼠标少于 5 个,它将向我发送一封电子邮件以进行下一步。但我坚持到了这个阶段。

这是我创建的 SQL 语句,它计算“可用”列的每一行,如果可用列的行小于 5,则发送电子邮件,这不是我想要的。

$sql ="SELECT Item, Available FROM accessories_other WHERE Item ='Mouse' 
AND Available <5";

我该怎么做才能检索可用性小于 5 的鼠标。

4

3 回答 3

0

这只是为了展示它是如何完成的。您应该使用 MySQLi 或 PDO 。此外,如果在生产环境中,您不应该向用户显示 MySQL 错误。

你可以这样做:

//  SQL to find Available value for Item Mouse
$sql = "SELECT Item, Available FROM accessories_other
        WHERE Item = 'Mouse'";
$result = mysql_query( $sql ) or die( 'Query failed.'.mysql_error() );
$row = mysql_fetch_array( $result ) ;
if( mysql_num_rows( $result ) > 0 )
{
    echo $row['Item'] ,': ' ,$row['Available'];
    if( $row['Available'] < 5 )
    {
    //  Code to send email
    }
    else
    {
    //  Code to what ever you would like to do here 
    }
}

或者

//  SQL to find Available value for Item Mouse if it is less than 5
$sql = "SELECT Item, Available FROM accessories_other
        WHERE Item = 'Mouse' AND Available < 5";
$result = mysql_query( $sql ) or die( 'Query failed.'.mysql_error() );
if( mysql_num_rows( $result ) > 0 )
{
    //  Code to what ever you would like to do here
}
else
{
    echo $row['Item'] ,': ' ,$row['Available'];
    //  Code to send email
}
于 2013-10-08T03:47:12.617 回答
0

我认为您的查询不会显示小于 5 的鼠标结果。我建议您尝试:

$sql ="SELECT Item, Available FROM accessories_other WHERE Item ='Mouse';

然后,尝试用另一种语言实现你的代码..如果我没记错的话,你正在使用 php..

于 2013-10-08T04:00:22.087 回答
0

如果您在表“附件”中有数据,那么您的查询应该只返回一行,如此处所示。除非您有重复项,例如具有 Item = 'Mouse' 的多行行,并且相同或不同的值也小于 5,否则只有查询将返回多个结果。还要注意,在说明中您使用了“附件”表,但在示例查询中,您使用了“附件_其他”表。确保你在正确的桌子上工作。

在此处输入图像描述

于 2013-10-08T04:13:37.380 回答