好的,我正在做的是从一个表中获取成员id,并通过另一个表循环这些ID来获取输出值。我让它通过第一个循环工作,然后注意到输出全部是扭曲的,所以释放我需要再次循环它,因为在MemID的第二个查询中可能会有多个条目。现在我把第二个循环,但它甚至没有经过,不知道我弄乱了代码,但现在似乎不通过第二循环运行时输出。尽管它没有输出循环。但是由于每个$ memid都有多行,这样做不起作用。在一个循环内部运行一个查询来完成另一个循环
$qry_skamembers = "SELECT * FROM ap_skamembers ORDER BY id";
$qry_skamembers = $mysqli->real_escape_string($qry_skamembers);
if($result_skamembers = $mysqli->query($qry_skamembers)){
while($row_skamembers = $result_skamembers->fetch_array()){
$AffID = $row_skamembers['AffID'];
$MemID = $row_skamembers['MemberID'];
$skacon = new mysqli(OW_DB_HOST, OW_DB_USER, OW_DB_PASSWORD, OW_DB_NAME);
if ($skacon->connect_error) {
die('Connect Error');
}
$get_data = "SELECT * FROM ow_base_billing_sale WHERE userID = $MemID AND status = 'delivered' ORDER BY id";
$get_data = $skacon->real_escape_string($get_data);
if($result_data = $skacon->query($get_data)){
while($finish = $result_data->fetch_array()){
$test = $finish['status'];
if($test == 'delivered') {
$sale_amount = $finish['price'];
$product = $finish['transactionUId'];
$products = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT * FROM ap_earnings where product = $product"));
if(mysqli_num_rows($products) > 0) { }
else {
echo "AFF: " . $AffID . " | ";
echo "Mem: " . $MemID . " | ";
echo "PRICE: " . $sale_amount . " | ";
echo "PRODUCT: " . $product . " -- ";
include('controller/record-sale.php');
echo "inserting record";
echo "run finished <br><br>";
}
}
}
}
}
}
我在编码方面还是比较新的,所以看起来有点草率,我对此表示歉意。
了解准备satements防止SQL注入 – Jens
不要逃避完整的SQL刺痛。 – Jens
什么问题是在你的第二个查询中,你没有把变量'$ MemID'的值放在文本''MemID'中。 Jens说过的话,学习准备好的陈述,这也能解决你的问题。 '“SELECT * FROM ow_base_billing_sale WHERE userID =”。 $ MemID。 “AND status ='deliver'ORDER BY id”;' – Teun