2016-12-08 4 views
1

У меня есть php-файл, который преобразует мой SQL-запрос в php-выход. Все работает нормально. Но теперь мне нужен вывод как txt.file, и мой код не работает.SQL result as txt.file по 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); 
?> 

мне нужно ENDCODE для вывода в формате TXT или CSV. Я полагаю, что исходный код (SELECT ...) не имеет четкой выходной строки для подключения к новому коду для вывода.

+0

Последний код является правильным, единственным различием использует 'mysql_ *' функции вместо 'PDO', что будет представлять проблему в PHP 7. –

+0

Расширение' mysql' устарело. Начните использовать 'mysqli' или' PDO', чтобы спасти себя от атак уязвимостей, таких как «SQL Injection» и т. Д. – 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