Egy php file, két sql lekérdezés exportja egy csv-be
2018-07-17T16:06:32+02:00
2018-07-20T10:34:45+02:00
2022-08-11T05:05:30+02:00
KöveZoli
Sziasztok, a segítségeteket kérném.
Néztem a google-t már, de nem találtam (rosszul kerestem?) megoldást.
Hogyan tudom megoldani, hogy két sql lekérdezést exportáljak egyetlen csv-be? Vagyis összefűzze a két eredményt?
Köszönöm!

Jelenleg ez van:

$conn = mysqli_connect($hostname, $user, $password, $database, $port); if (mysqli_connect_errno()) { die("Failed to connect to MySQL: " . mysqli_connect_error()); } mysqli_set_charset($conn,"utf8"); $csv_export = ''; mysqli_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'"); $query = mysqli_query($conn, "SELECT ......."); $field = mysqli_field_count($conn); for($i = 0; $i < $field; $i++) { $csv_export.= mysqli_fetch_field_direct($query, $i)->name.';'; } $csv_export.= ' '; while($row = mysqli_fetch_array($query)) { for($i = 0; $i < $field; $i++) { $csv_export.= '"'.$row[mysqli_fetch_field_direct($query, $i)->name].'";'; } $csv_export.= ' '; } header('Content-Encoding: UTF-8'); header('Content-type: text/csv; charset=UTF-8'); //header('Content-Disposition: attachment; filename='Customers_Export.csv''); file_put_contents( "termekek.csv", $csv_export ); echo($csv_export);
Mutasd a teljes hozzászólást!
Szia!

Ha jól látom ez csak az egyik lekérdezés kiírása csv-be.
Innen már nem túl bonyolult:
1, a while ciklust egy funkcióba teszed, aminek a bemenő paramétere egy sql lekérdezés és a lekérdezés eredményét adja vissza pontosvesszővel és sorvége jellel tagolt szövegként
2, a visszakapott értéket beleteszed a csv_export változódba, majd ismét meghívod a másik sql-el, amit hozzáfűzöl a már meglévőhöz (csv_export).

Amennyiben a két lekérdezés fejlécei eltérőek, akkor szükséges a másik fejléc hozzáfűzése is, ebben az esetben lehet ezt is érdemes a funkcióba tenni, hogy a fejlécet is abban rakja össze a tartalommal együtt.
Ez után már csak elmented, ahogy eddig is.
Mutasd a teljes hozzászólást!

abcd