2016-10-15 6 views
1

私のプロジェクトでは助けが必要です。MySQLから所望の形式のテキストファイルにデータをエクスポート

私のPHPコード ---以下これらのコードは、私のデータベースから特定のデータを取得し、私はので、正規の参加で2つのテーブルを使用します。チェックのためにブラウザに表示されるデータを表示し、選択したデータを特定の形式のテキストファイルに保存します。以下のその他の詳細をご覧ください。

<?php 
 

 
$conn = new mysqli('localhost', 'root', '', 'db2'); 
 
if ($conn->connect_errno) { 
 
    die("Failed to connect to MySQL: (" . $conn->connect_errno . ") " . $conn->connect_error); 
 
} 
 

 
$fp = fopen("result.txt", "w"); 
 

 
$query = "SELECT product_id FROM orders_lines"; //dont mind these 
 
$result = $conn->query($query); \t //dont mind these 
 

 
$queryjoin = "SELECT orders_lines.product_id, orders.id FROM orders_lines INNER JOIN orders ON orders_lines.order_id=orders.id ORDER BY orders.id"; 
 
$resultjoin = $conn->query($queryjoin); 
 

 
if ($resultjoin->num_rows > 0) { 
 
    
 
\t echo "order id | item ordered<br>"; 
 
    while($row = $resultjoin->fetch_assoc()) { 
 
\t \t 
 
\t \t $string = implode(",", $row); 
 

 
     echo "data: " . $row["id"] . " | " . $row["product_id"] . "<br>"; 
 
\t \t 
 
\t \t fwrite($fp, $string); 
 
    } 
 
} else { 
 
    echo "0 results"; 
 
} 
 

 
fclose($fp); 
 

 
$conn->close(); 
 

 
?>

これは私のPHPのコードの出力の画像です:私のTextFileの中Output of PHP Code

電流出力から4は、ORDER_ID、2項目が発注されるに属しています4、3は4 ...などにも指定された商品です。

4,24,35,15,25,65,56,27,27,48,28,19,49,310,310,610,410,210,810,111,511,411,312,412,512,913,313,213,614,514,214,314,714,414,115,415,415,815,515,115,315,215,616,816,517,417,117,517,817,317,7

TextFileの

2,3 \t \t //order id 4 -->comment 
 
1,2,6,5 \t \t //order id 5 
 
7 \t \t //order id 6 
 
2,4 \t \t //order id 7 
 
2,1 \t \t //order id 8 
 
4,3 \t \t //order id 9 
 
3,6,4,2,8,1 \t //order id 10 
 
5,4,3 \t \t //order id 11 
 
4,5,9 \t \t //order id 12 
 
3,2,6 \t \t //order id 13 
 
.....

で私の所望の出力すべてのヘルプは理解されるであろう。ありがとう。

+0

を限り私としてあなたが実際にそこにいることを知ることができます - 文字列の操作をするだけで出力が得られるので、ファイルに保存する必要があります。 – kerry

+0

@kerry、ありがとう。私はいくつかの研究をしようとしましたが、私はそれを解決できません。私は本当にロジックにうまくいきません。 – Emjey23

+0

実際の出力を希望の結果と比較して理解することに問題があります。 '4はorder_idであり、2は注文された品目であり、3は注文された品目であり、4 ...などにも属する品目です。'次に、4,24,35,15,25,65,56実際の出力として望ましい出力は論理的な関係を持たないようです – kerry

答えて

0

おかげで、私はそれを得た...これらは私が私の問題を探していた右の答え..です私の私の良き友人が私を助けて...

if ($resultjoin->num_rows > 0) { 
 
    $currentRowId = ''; 
 
    $output = ''; 
 
\t while($row = $resultjoin->fetch_assoc()) { 
 
\t \t if($row["id"]==$currentRowId){ 
 
\t \t \t echo ', '.$row["product_id"]; 
 
\t \t \t $output = $output.', '.$row["product_id"]; 
 
\t \t } else if($currentRowId=='') { 
 
\t \t \t $currentRowId = $row["id"]; 
 
\t \t \t echo $row["product_id"]; 
 
\t \t \t $output = $output . $row["product_id"]; 
 
\t \t } else { 
 
\t \t \t $currentRowId = $row["id"]; 
 
\t \t \t echo '<br>'.$row["product_id"]; 
 
\t \t \t $output = $output . PHP_EOL . $row["product_id"]; 
 
\t \t } 
 
    } 
 
\t echo $output; 
 
\t fwrite($fp, $output); 
 
} else { 
 
    echo "0 results"; 
 
}

関連する問題