Autor Zpráva
eleef
Profil
Dobrý den, prosím o rady či nápady jak udělat export z PHP do CSV souboru s požadavkem proměných do jednotlivých sloupců.

Vím, že existuje funkce fputcsv(), ale ta dá všechny údaje do řádku a do prvního sloupečku.

Potřebuji dát každý údaj jednotlivě do sloupců.

$rec= $id . $nazev . $vyrobce ;

$fp = fopen("soubor.csv", "w");

fputcsv($fp, (array)$rec);


Zkoušel jsem $rec= $id .";". $nazev .";". $vyrobce ;
Tedy oddělovač středník.

Předem děkuji.

Přemýšlím, ještě nainsertovat do sql a v phpmyadminu dát export do csv, který to do sloupců asi dělá.
Taps
Profil
eleef:
já používám file_put_contents
$rec= $id .";". $nazev .";". $vyrobce ; 
file_put_contents("soubor.csv",$rec);
AM_
Profil
eleef:
fputcsv($fp, (array)$rec);
rozhodně nemůžeš očekávat, když údaje nacpeš (ještě k tomu nijak neoddělené) do řetězce a ten přetypuješ na pole, že to pole bude mít správný formát.
Kdyžtak takto:
$lines = array(
  array($id1, $nazev1, $vyrobce1);
  array($id2, $nazev2, $vyrobce2);
);
foreach ($lines as $line)
{
  fputcsv($f, $line);
}
AM_
Profil
Taps:
to sice lze taky, ale funkce fputcsv zvládá zřejmě i základní escapování CSV (kdyby se ve jménu např. objevil středník nebo uvozovka).
eleef
Profil
Zkusil jsem to podle Tapse a už to krásně zapisuje do csv do sloupců, ale nevím ještě jak udělat aby se mi nezapsal jen poslední řádek, ale všech řeknu příklad 3000 položek.

Jak na to prosím.

Děkuji
Kcko
Profil
file_put_contents vzdy zapise do souboru tak ze ho vytvori znova. Proto zapises pouze 1x a to vysledny string.
eleef
Profil
fputcsv by to uměl vyřešit? nezle soubor otevřít a zapsat jakoby na konec nebo lépe přidat řádek?
děkuji

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: