Vypsání jedné hodnoty z CSV souboru pomocí PHP scriptu.
Ahojte, narazil jsem na novinku v PHP (pro mě je to novinka), jde o práci ze souborem CSV. Mám tedy soubor data.csv První sloupec je třeba ID, druhý je název a třetí je cena.
1002;Model1;233
1003;Model1;323
1004;Model1;546
1005;Model1;988
1006;Model1;754
Dále mám script, který mi udělá pěknou tabulku s daty:
<table>
<tr><td>ID kód</td><td>Název produktu</td><td>Množství (ks)</td><td>Cena</td></tr>
<?php
$nazev_souboru="data/data.csv";
if (file_exists($nazev_souboru)) {
$soubor=fopen($nazev_souboru, "r");
if($soubor){
while (!feof($soubor)){
$radek = fgets($soubor,5000);
$radek = str_replace(";","</td><td>",$radek);
print("<tr><td>".$radek."</td></tr>");
}
}
else {print("Soubor ".$nazev_souboru." se nepodařilo otevřít pro čtení.");}
}
else {print("Soubor ".$nazev_souboru." neexistuje.");}
?>
</table>
Já bych chtěl poradit, jak udělám script, ve kterém zadám na tvrdo ID hodnotu (nebo proměnou z formuláře) s kterou mi to porovná řádky (sloupce) v CSV souboru a při shodě vypíše třeba cenu natvrdo zadaného ID?
Velice jednoduse: pred print("...$radek..) das if (zvolene id=zacatek retezce) a v tom printu samotnem to vypises az od druheho stredniku.
trik: zvolene_id zadavej ve tvaru "12;" aby se ti naslo 12, ale nikoli 123 a 124
Nechápu, kde u druhého středníku?
Nějak nefunguje, nevím co dát do hranaté závorky místo nuly?
A zkoušíš na ten script odeslat nějaké ID?
ale radsej si pozri nieco o tomto: function.fgetcsv.php
potom mozes urobit:
Tak jsem se díval a zkoušel. Pořád furt nechápu ty čísla. Teď mám kód:
Ta trojka znamená počet polí (sloupců)? Tady se to počítá jako 1, 2, 3?
A tady se to počítá zase 0, 1, 2?
Protože mi to nefunguje, jsem na freehostingu IC, nemůže být problém v tom?
Zkoušel jsem i použít funkci explode:
Taky nic nezobrazí.
ok, robil som to len z hlavy, takze je tam kopec chyb :D. Teraz som si to urobil nacisto na notase a kod je asi takyto:
najprv otvorim subor s csv. Potom si nastavim to tvoje ID napriklad na 1004. Nasledne cez while prechadzam funkciou fgetcsv po jednotlivych riadkoch suboru. Kedze vieme, ze kazdy riadok CSV suboru obsahuje 3 hodnoty, tak viem, ze na indexe 0 je ID, na indexe 1 je nazov a na indexe 2 je cena.
V cykle uz len checkujem podmienkou IF, ci sa na indexe 0 nenachadza ID_natvrdo. Ked ano, tak vypisem hodnotu z indexu 2 (cize cenu).
a prikladam ti aj kod, ktorym to CSV vypises ako HTML tabulku. Myslim, ze toto je elegantnejsie ako to co mas ty:
Supeeeeer, díky moc. Teď už to chápu. S tím se dá pěkně pracovat. Díky moc. (zámek)