2017-06-20 68 views
0

好的,我正在做的是从一个表中获取成员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>";  
        }  
       } 
      } 
     }  
    } 
} 

我在编码方面还是比较新的,所以看起来有点草率,我对此表示歉意。

+0

了解准备satements防止SQL注入 – Jens

+0

不要逃避完整的SQL刺痛。 – Jens

+0

什么问题是在你的第二个查询中,你没有把变量'$ MemID'的值放在文本''MemID'中。 Jens说过的话,学习准备好的陈述,这也能解决你的问题。 '“SELECT * FROM ow_base_billing_sale WHERE userID =”。 $ MemID。 “AND status ='deliver'ORDER BY id”;' – Teun

回答

0

我不知道这是否是IST府试图取代:

$get_data = $skacon-->real_escape_string($get_data); 

$get_data = $skacon->real_escape_string($get_data); 

我觉得这是一个额外的-

正如我们在评论中发现您需要将$product更改为'$product'

+0

是啊thnx –

+0

我很乐意提供帮助! –

0

你可以做一切在一个查询,请不要介意这将是更快

SELECT aps.AffID,aps.MemberID,owb.price,owb.transactionUId 
FROM db1.ap_skamembers aps JOIN db2.ow_base_billing_sale owb 
    ON aps.MemberID = owb.userID AND owb.status='delivered' 
JOIN db3.ap_earnings ape 
    ON ape.product = owb.transactionUId 
ORDER BY aps.id 
+0

ap_skamembers和ow_base_billing_sale在2个完全不同的数据库上。 –

+0

@RickJones只需在表格前面指定db – Mihai

+0

好吧,我看到了,但是您无法真正进行检查和这样..我需要包含在底部的值用于其他信息。 –