Php 查询不执行我希望它执行的操作 $mpn=$P[0]; $qty=$P[14]; $mysql\u connection=mysql\u connect('localhost','my\u db','my\u pass'); if(!$mysql\u连接){ die('无法连接到数据库:'.mysql_error()); } mysql\u select\u db('my\u db',$mysql\u connection); $id=mysql_查询(“从我的_表_2中选择productid,其中value='$mpn'); 如果(!$id){ 报税表(“XXX-99999”); } mysql\u select\u db('my\u db',$mysql\u connection); $sku=mysql_查询(“从我的_表中选择productcode,其中productid=$id”); 如果(!$sku){ 报税表(“XXX-99999”); } mysql\u select\u db('my\u db',$mysql\u connection); $qty2=mysql_查询(“从my_表中选择avail,其中productcode='$sku'); 如果(!$qty2){ 报税表(“XXX-99999”); } 如果($qty2 0&&$qty2!=$qty){ 退货(sku); } 否则{ 报税表(“XXX-99999”); }

Php 查询不执行我希望它执行的操作 $mpn=$P[0]; $qty=$P[14]; $mysql\u connection=mysql\u connect('localhost','my\u db','my\u pass'); if(!$mysql\u连接){ die('无法连接到数据库:'.mysql_error()); } mysql\u select\u db('my\u db',$mysql\u connection); $id=mysql_查询(“从我的_表_2中选择productid,其中value='$mpn'); 如果(!$id){ 报税表(“XXX-99999”); } mysql\u select\u db('my\u db',$mysql\u connection); $sku=mysql_查询(“从我的_表中选择productcode,其中productid=$id”); 如果(!$sku){ 报税表(“XXX-99999”); } mysql\u select\u db('my\u db',$mysql\u connection); $qty2=mysql_查询(“从my_表中选择avail,其中productcode='$sku'); 如果(!$qty2){ 报税表(“XXX-99999”); } 如果($qty2 0&&$qty2!=$qty){ 退货(sku); } 否则{ 报税表(“XXX-99999”); },php,mysql,Php,Mysql,我试图从产品提要和数据库中匹配制造商的零件号,以完成从主要来源到次要来源的缺货产品。它不起作用。我做错了什么 这篇文章经过编辑,试图更清楚地解释情况。首先,这将进入一个应用程序,是该应用程序要使用的一个snippit。因此,mysql取代了mysqli。第一个查询中的变量$mpn来自$mpn=($P[0]);在顶端。它在提要中,而不是作为列在数据库中$第二个查询中的sku来自第一个查询的结果,不作为列在数据库中。应用程序为提要的每一行循环此代码 尽管我知道应该(我设置了它)提供最后一个参数,但上

我试图从产品提要和数据库中匹配制造商的零件号,以完成从主要来源到次要来源的缺货产品。它不起作用。我做错了什么

这篇文章经过编辑,试图更清楚地解释情况。首先,这将进入一个应用程序,是该应用程序要使用的一个snippit。因此,mysql取代了mysqli。第一个查询中的变量$mpn来自$mpn=($P[0]);在顶端。它在提要中,而不是作为列在数据库中$第二个查询中的sku来自第一个查询的结果,不作为列在数据库中。应用程序为提要的每一行循环此代码

尽管我知道应该(我设置了它)提供最后一个参数,但上面的内容并没有达到预期的效果。根据新的解释,有人能帮忙吗

$mpn = $P[0];
$qty = $P[14];
$mysql_connection = mysql_connect('localhost', 'my_db', 'my_pass');
if (!$mysql_connection) {
    die('Could not connect to db: ' . mysql_error());
}
mysql_select_db('my_db', $mysql_connection);
$id = mysql_query("SELECT productid FROM my_table_2 WHERE value = '$mpn'");
if (!$id) { 
    return("XXX-99999");
}
mysql_select_db('my_db', $mysql_connection);
$sku = mysql_query("SELECT productcode FROM my_table WHERE productid = $id");
if (!$sku) { 
    return("XXX-99999");
}
mysql_select_db('my_db', $mysql_connection);
$qty2 = mysql_query("SELECT avail FROM my_table WHERE productcode = '$sku'");
if (!$qty2) { 
    return("XXX-99999");
}
if ($qty2 <1 && $qty >0 && $qty2 != $qty) { 
    return($sku);
}
else {
    return("XXX-99999");
}
$mpn=($P[0]);
$qty=($P[14]);
$mysql\u connection=mysql\u connect('localhost','user','pass');
if(!$mysql\u连接){
die('无法连接到数据库:'.mysql_error());
}
mysql\u select\u db('db',$mysql\u connection);
$tmp1=mysql_query(“从表1中选择productcode,其中mpn!=''&&mpn='$mpn')或die(mysql_error());
$row1=mysql\u fetch\u数组($tmp1,mysql\u两者);
$sku=$row1[0];
$tmp2=mysql_query(“从表1中选择avail,其中productcode='$sku')或die(mysql_error());
$row2=mysql\u fetch\u数组($tmp2,mysql\u NUM);
$qty2=$row2[0];
如果($qty2 0){
退货(sku);
}
否则{
报税表(“XXX-99999”);
}
此处:

$mpn = ($P[0]);
$qty = ($P[14]);

$mysql_connection = mysql_connect('localhost', 'user', 'pass' );
if (!$mysql_connection) {
die('Could not connect to db: ' . mysql_error());
}

mysql_select_db('db', $mysql_connection);

$tmp1 = mysql_query("SELECT productcode FROM table1 WHERE mpn != '' && mpn = '$mpn'")or die(mysql_error());
$row1 = mysql_fetch_array($tmp1, MYSQL_BOTH);
$sku = $row1[0];

$tmp2 = mysql_query("SELECT avail FROM table1 WHERE productcode = '$sku'")or die(mysql_error());
$row2 = mysql_fetch_array($tmp2, MYSQL_NUM);
$qty2 = $row2[0];

if ($qty2 <=0 && $qty >0) { 
return($sku);
}
else {
return("XXX-99999");
}
我认为应该是这样的:

$sku = mysql_query("SELECT productcode FROM my_table WHERE productid = $id");

您必须使用
mysql\u-fetch\u-array
mysql\u-query
之后获取数据(改为查看mysqli)。获取后,分配
$row1=mysql\u fetch\u数组($id)
然后可以调用行和列名
$row1['productid']。您也不需要在每次调用之前打开并分配数据库。在运行查询之前只能执行一次,然后运行
mysql\u close($mysql\u connection)

$sku = mysql_query("SELECT productcode FROM my_table WHERE productid = '$id' ");
$mpn=$P[0];
$qty=$P[14];
$mysql\u connection=mysql\u connect('localhost','my\u db','my\u pass');
if(!$mysql\u连接){
die('无法连接到数据库:'.mysql_error());
}
mysql\u select\u db('my\u db',$mysql\u connection);
$id=mysql_查询(“从我的_表_2中选择productid,其中value='$mpn');
$row1=mysql\u fetch\u数组($id);
如果(!$id){返回(“XXX-99999”);
}
$sku=mysql_查询(“从我的_表中选择productcode,其中productid=$row1['productid']);
$row2=mysql\u fetch\u数组($sku);
如果(!$sku){返回(“XXX-99999”);
}
$qty2=mysql_查询(“从我的_表中选择avail,其中productcode='$row2['productcode']'”);
$row3=mysql\u fetch\u数组($qty2);
如果(!$qty2){返回(“XXX-99999”);
}
如果($row3['avail']0&$row3['avail']!=$qty){return($row['productcode']);
}
否则{返回(“XXX-99999”);
}
mysql\u close($mysql\u连接);

这或多或少会给你一个想法。用作参考:

“医生,很疼,帮帮我!”你能提供更多的细节吗?我想知道
mysql\u query()
会给出什么结果数据类型。试图使用mysql\u querys设置变量只是为了将来参考,你不应该使用php的
mysql\u
函数。相反,请尝试使用
PDO
mysqli
函数。$mpn和$qty直接从应用程序涵盖的提要获取。我关心的是如何从DB$id、$sku和$QTY2中检索未能获得所需结果的数据。请注意,Where设计用于产生单一结果,而不是数组。是的,Where设计用于产生单一结果,但您仍然需要生成数据,它会将数据作为一行添加到数组中。您仍然需要从数组调用它
$row[“productid”]
我同意必须这样调用它,但是上面的代码失败了,出现了错误。也许应该这样调用:if($row3 0&&$row3!=$qty){return($row2);啊,也许……if($row3['avail']0&$row3['avail'!=$qty){return($row['productcode']);应该是if($row3['avail avail']0&&$row3['avail']!=$qty){return($row2['productcode']);还请注意,$id始终是一个数字结果,其中$mpn和$sku可以在数字和文本之间混合。
$mpn = $P[0];
$qty = $P[14];
$mysql_connection = mysql_connect('localhost', 'my_db', 'my_pass');
if (!$mysql_connection) {
die('Could not connect to db: ' . mysql_error());
}

mysql_select_db('my_db', $mysql_connection);    

$id = mysql_query("SELECT productid FROM my_table_2 WHERE value = '$mpn'");
$row1 = mysql_fetch_array($id);
if (!$id) { return("XXX-99999");
}

$sku = mysql_query("SELECT productcode FROM my_table WHERE productid = $row1['productid']");
$row2 = mysql_fetch_array($sku);
if (!$sku) { return("XXX-99999");
}

$qty2 = mysql_query("SELECT avail FROM my_table WHERE productcode = '$row2['productcode']'");
$row3 = mysql_fetch_array($qty2);
if (!$qty2) { return("XXX-99999");
}
if ($row3['avail'] <1 && $qty >0 && $row3['avail'] != $qty) { return($row['productcode']);
}
else {return("XXX-99999");
}
mysql_close($mysql_connection);