-3
$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");
}

我正在尝试匹配产品提要和数据库中的制造商零件号,以完成将缺货产品从主要来源转移到次要来源。这没用。我做错了什么?

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

尽管我肯定知道它应该(我设置它),但上述内容未能达到提供最后一个参数的预期效果。鉴于新的解释,有人可以帮忙吗?

$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");
}
4

2 回答 2

1

您必须在mysql_query使用mysql_fetch_array. 获取分配$row1 = mysql_fetch_array($id);后,您可以调用行和列名称$row1['productid'];。您也不需要在每次调用之前打开分配数据库。您只能在运行查询之前执行一次,然后运行mysql_close($mysql_connection)

$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);

这应该或多或少地给你一个想法。用作参考:http ://www.php.net/manual/en/function.mysql-connect.php

于 2012-09-16T07:27:04.577 回答
0

这里:

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

我认为它应该看起来像:

$sku = mysql_query("SELECT productcode FROM my_table WHERE productid = '$id' ");
于 2012-09-16T07:26:46.433 回答