$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");
}
我正在尝试匹配产品Feed和数据库中的制造商部件号,以完成从主要来源到次要来源的库存产品。这是行不通的。我做错了什么?
这已经过编辑,试图更清楚地解释情况。首先,这是一个应用程序,是该应用程序使用的snippit。因此mysql而不是mysqli。第一个查询中的变量$ mpn来自$ mpn =($ P [0]);在顶部。它位于Feed中,而不是数据库中的列。第二个查询中的$ sku来自第一个查询的结果,并且不作为列在数据库中。该应用程序为Feed的每一行循环此代码。
即使我确实知道它(我设置了),上面也无法达到提供最后一个参数的预期效果。鉴于新的解释可以有人帮忙吗?
$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");
}
答案 0 :(得分:1)
您必须使用mysql_query
在mysql_fetch_array
之后获取数据(改为查看mysqli)。获取分配$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
答案 1 :(得分:0)
下面:
$sku = mysql_query("SELECT productcode FROM my_table WHERE productid = $id");
我认为应该是这样的:
$sku = mysql_query("SELECT productcode FROM my_table WHERE productid = '$id' ");