Autor Zpráva
hondziiikh
Profil
Ahoj, připravuji do práce "systém", který mi z excelu převede tabulu do do krásného textu,nebo do html tabulky, jak chci. To je sice moc pěkné, ale já to z toho vzniklého textu potřebuji sázet do sql..
Z xls zkopiruji obsah a přes
$text = str_replace("\t", ";", $text);
$text = str_replace("\r", ";<br>", $text);
vypíše to hodnoty kde tabulátory nahradím středníkama a rádky řádkama. Dám příklad výsledku, význam sloupců je: datum;smena;poznamka;pracovnik:
8.12.2011;R(10-18);;novotny
9.12.2011;R(10-18);;novotny
10.12.2011;;;novotny
11.12.2011;D(7-19);neděle - klid;novakova
12.12.2011;R(7-15);poznamka;novotny
13.12.2011;R(7-15);;novotny
A teď mě nenapadá, čím to udělat aby to vypadalo např takhle:INSERT INTO smeny VALUES (NULL , '$date', '$smena', '$poznamka', '$pracovnik')
a tedy z uvedeneho prikladu:
(NULL , '9.12.2011', 'R(10-18)', NULL, 'novotny')
(NULL , '10.12.2011', 'R(10-18)', NULL, 'novotny')
(NULL , '11.12.2011', '$smena', 'neděle - klid', 'novakova')
(NULL , '12.12.2011', '$smena', 'poznamka', 'novotny')
(NULL , '13.12.2011', 'R(10-18)', NULL, 'novotny')
.....
Nějaké nápady prosím? :)
Str4wberry
Profil
Co takhle nevymýšlet kolo?
hondziiikh
Profil
no, to bych použil moc rád, ale nelze. Ta xls tabulka má nahoře jména z leva datumy a položek je tam fakt hromada. Hlavně se používá pro opravdu spoooustu zaměstnanců, takže dat je tam požehnaně..
Já jsem jeden ze zaměstnanců a zaměstnavatel (opravdu velká nadnárodní spol) není schopná něco podobného udělat, a jako ve středověku to tisknem na nástěnku.. Tragédie.. Já potřebuji z té tabulky vycusnout jen nás, a dostrkat to do db a potřebuji, aby to dokázala nadřízená - né zrovna moc zdatná.. Teď prostě označí buňky a zkopíruje je do textarea a toto z toho vypadne. A s tímto musím pracovat :)
Str4wberry
Profil
Tak můžeš použít nějakou takovouto srandu:
foreach (explode("\n", $vstup) as $value) {
    echo str_replace("''", "NULL", "(NULL, '" . implode("', '", explode(";", trim($value))) . "')<br>");
}
hondziiikh
Profil
Str4wberry:
uff.. tak to si vezmu chvili stranou a přelouskam.. :)


tfuj.. funguje to..
Tos to sepsal takhle za par minut z hlavy na koleni? Co to je za čáry? :)
Tak to vyzkouším ještě v praxi a uvidím.. Jinak zatím super a moc moc díky, s něčím takovým bych se patlal do rána, jestli by mě vůbec napadl směr, kudy se k tomuto výsledku dopracovat :) Ještě jednou díky moc :)


No tak, jde to dobře :) jen ještě malou pomoc :) ten čas, resp datum jsem zapoměl, že budu převádět pomocí
$date = "1.12.2011";
$date = strtotime($date);
A nějak se mi nedaří to zakomponovat do toho cos mi poradil, můžu poprosit ještě o pomoc? :) Díky moc
Keeehi
Profil
foreach (explode("\n", $vstup) as $value) {
    echo str_replace("''", "NULL", "(NULL, '". strtotime($date)."','" . implode("', '", explode(";", trim($value))) . "')<br>");
}
hondziiikh
Profil
ee, nefunguje :( je tam jen dalsi polozka, a datum nebere z toho co tam je
Keeehi
Profil
foreach (explode("\n", $vstup) as $value) {
    $pole =  explode(";", trim($value));
    $pole[0] = strtotime($pole[0]);

    echo str_replace("''", "NULL", "(NULL,'" . implode("', '",$pole) . "')<br>");
}
hondziiikh
Profil
Keeehi:
Jo, to je lepší :) Každopádně díky moc, teď už to půjde samo :) Moc díky

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: