2017-06-20 69 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

好吧,我看到了,但是您無法真正進行檢查和這樣..我需要包含在底部的值用於其他信息。 –