2016-12-08 21 views
1

我有一个php文件,它在php输出中转换我的sql查询。一切正常。但现在我需要一个输出作为txt.file和我的代码不起作用。作为txt.file的SQL结果由php

这里查询:

<?php 
$pdo = new PDO('mysql:host=localhost;dbname=DB', 'USER', 'PW'); 

$result = ("SELECT o.order_id AS Bestellnummer, o.customer_id AS Kundennummer, o.order_status_id AS Bestellstatus, op.quantity AS Anzahl, op.model AS Pharmacode, op.name AS Bezeichnung, p.location AS Lieferant, o.shipping_company AS Firma, o.shipping_firstname AS Vorname, o.shipping_lastname AS Nachname, o.shipping_address_1 AS Lieferadresse, o.shipping_postcode AS PLZ, o.shipping_city AS Ort 
FROM oc_order o 
INNER JOIN oc_order_product op 
ON o.order_id = op.order_id 
INNER JOIN oc_product p 
ON op.product_id = p.product_id 
WHERE o.order_status_id = 1 AND p.location = 1 
ORDER BY o.order_id, op.model"); 



echo "<table border='0'> 
<tr> 
<th>Best.Nr</th> 
<th>Kd.Nr</th> 
<th>Status</th> 
<th>Anz.</th> 
<th>Pharmacode</th> 
<th>Bezeichnung</th> 
<th>Lieferant</th> 
<th>Firma</th> 
<th>Vorname</th> 
<th>Nachname</th> 
<th>Adresse</th> 
<th>PLZ</th> 
<th>Ort</th> 
</tr>"; 

foreach ($pdo->query($result) as $row) { 

    echo "<tr>"; 
    echo "<td>" . $row['Bestellnummer'] . "</td>"; 
    echo "<td>" . $row['Kundennummer'] . "</td>"; 
    echo "<td>" . $row['Bestellstatus'] . "</td>"; 
    echo "<td>" . $row['Anzahl'] . "</td>"; 
    echo "<td>" . $row['Pharmacode'] . "</td>"; 
    echo "<td>" . $row['Bezeichnung'] . "</td>"; 
    echo "<td>" . $row['Lieferant'] . "</td>"; 
    echo "<td>" . $row['Firma'] . "</td>"; 
    echo "<td>" . $row['Vorname'] . "</td>"; 
    echo "<td>" . $row['Nachname'] . "</td>"; 
    echo "<td>" . $row['Adresse'] . "</td>"; 
    echo "<td>" . $row['PLZ'] . "</td>"; 
    echo "<td>" . $row['Ort'] . "</td>"; 
    echo "</tr>"; 
    } 
echo "</table>"; 


mysql_close($con); 
?> 

我需要为TXT或CSV一个输出endcode。我想初始代码(SELECT ...)没有清晰的输出字符串来连接输出的新代码。

+0

最后的代码是正确的,唯一的区别使用'mysql_ *'函数代替'PDO',这会在PHP 7中造成问题。 –

+0

不推荐使用'mysql'扩展名。开始使用'mysqli'或'PDO'来避免像SQL注入这样的漏洞攻击。 – Perumal

+0

@JiriHrazdil'mysql'扩展不仅在PHP 7中引起问题,它从PHP 5.5.0开始已被弃用。 5.5.0之后的版本都会使用'mysql'造成问题。 – Perumal

回答

0

您可以尝试用PHP,比把它放到文件收集完整的字符串: 所以你需要循环之前创建$string变量和追加每行$string

$string = ""; 
$file_path = "file.csv"; 
foreach ($pdo->query($result) as $row) { 
    $string .= $row['Bestellnummer'] . ','; 
    ... 
} 
file_put_contents($file_path, $string) 
+0

我试过但没有积极效果:file_put_contents(“test.txt”,$ output);需要$ query = $ this-> db - > $ query(“output”);这不适用于我的主要代码。 – 27eleven

+0

显示您的代码,请 –

+0

嗨,这是不可能回答整个代码,所以我已经在最初的问题中公布了整个代码。 – 27eleven