Forum » Izdelava spletišč » PHP + MySQL excel export pomoč?
PHP + MySQL excel export pomoč?
Housy ::
Zdravo,
na internetu sem našel eno preprosto skripto, ki exportira podatke v excel. Iz baze poberem podatke, te pa nato prikažem v excel datoteki.
Imam pa eno vprašanje, saj mi ta skripta vseeno ne deluje, tako, kot sem pričakoval. V excelu mi na vrhu izpiše tudi linke ter tudi iskalnik oz. celoten obrazec za iskanje, ki ga imam na strani. Tudi stolpec za povprečno ceno mi ne izpiše tako kot treba, saj mi namesto povprečne cene izpiše kar datum. Zakaj se to dogaja, mi res ni jasno.
Jaz bi samo rad, da mi v excel zapiše samo podatke iz baze, torej brez linkov in obrazca, zato me zanima, kaj je potrebno narediti?
Koda pa je sledeča:
Lp in hvala,
Housy
na internetu sem našel eno preprosto skripto, ki exportira podatke v excel. Iz baze poberem podatke, te pa nato prikažem v excel datoteki.
Imam pa eno vprašanje, saj mi ta skripta vseeno ne deluje, tako, kot sem pričakoval. V excelu mi na vrhu izpiše tudi linke ter tudi iskalnik oz. celoten obrazec za iskanje, ki ga imam na strani. Tudi stolpec za povprečno ceno mi ne izpiše tako kot treba, saj mi namesto povprečne cene izpiše kar datum. Zakaj se to dogaja, mi res ni jasno.
Jaz bi samo rad, da mi v excel zapiše samo podatke iz baze, torej brez linkov in obrazca, zato me zanima, kaj je potrebno narediti?
Koda pa je sledeča:
if(isset($_SESSION["user_logged"])) { $filename = "prevzemi_" . date('d-m-Y') . ".xls"; header('Content-type: application/ms-excel'); header('Content-Disposition: attachment; filename='.$filename); $search_sql = "SELECT a.*, b.ime_artikla, ROUND(AVG(a.cena), 2) AS povprecje, SUM(a.kvantiteta) AS quantity FROM prevzemi a, artikli b WHERE a.datum BETWEEN '".mysql_real_escape_string($_POST["oddatuma"])."' AND '".mysql_real_escape_string($_POST["dodatuma"])."' AND a.id_artikla = '".mysql_real_escape_string($_POST["id_artikla"])."' AND a.id_artikla = b.id_artikla GROUP BY a.id_artikla ORDER BY a.id_artikla ASC"; $search_qry = mysql_query($search_sql) or die(mysql_error()); $content = ""; $content .= '<table id="prevzemi">'; $content .= '<tr> <td style="padding: 0px 0px 10px 0px"><b>Ime Artikla</b></td> <td><b>ID</b></td> <td><b>Količina</b></td> <td><b>Povprečna cena</b></td> </tr>'; while($search = mysql_fetch_array($search_qry)) { $content .= '<tr> <td>'.$search["ime_artikla"].'</td> <td>'.$search["id_artikla"].'</td> <td>'.$search["quantity"].'</td> <td>'.$search["povprecje"].'</td> </tr>'; } $content .= "<tr><td colspan='4'>Od <b>".$_POST["oddatuma"]."</b> do <b>".$_POST["dodatuma"]."</b></td></tr>"; $content .= "</table>"; echo $content; } ?>
Lp in hvala,
Housy
- zavaroval slike: bluefish ()
Housy ::
Če naredim enak izpis za isto poizvedbo kar na sami strani, pa dela brez problema in prikaže vse pravilno, tako da se mi res niti malo ne sanja, kaj je narobe.
Lp, Housy
Lp, Housy
Zgodovina sprememb…
- spremenil: Housy ()
misek ::
Verjetno imaš kje pred tem delom kode kakšen html del s samim obrazcem. Zato najprej pošlje ta html del, nato pa še vsebino tabele. Ob kliku na Išči moraš poslati samo vsebino tabele.
Housy ::
Ja imam index.php datoteko in imam dinamične linke, npr. index.php?page=search. V index.php imam obrazec za iskalnik ja in ko vpišem v iskalnik iskan artikel, je atribut forme, torej action nastavljen na index.php?page=search. Potem pa z $_GET["page"] preverim, kdaj je stran enaka search in če je, potem include-am datoteko excel_export.php, ki mi nato ustvari excel datoteko.
Ob kliku na išči moraš poslati samo vsebino tabele?
Kako pa to storim?
Lp in hvala,
Housy
Ob kliku na išči moraš poslati samo vsebino tabele?
Kako pa to storim?
Lp in hvala,
Housy
misek ::
Tvoj problem je, da ti vsa vsebina strani ostane, tudi ko include-aš excel_export.php. Torej v primeru index.php?page=search dobiš osnovno stran + rezultat iskanja.
Torej, če imaš zahtevo za search (page=search), izvedi samo search in vrni rezultat, tako kot imaš v zgornji kodi. Formo pa preskoči.
Torej, če imaš zahtevo za search (page=search), izvedi samo search in vrni rezultat, tako kot imaš v zgornji kodi. Formo pa preskoči.
Housy ::
Hvala, sem dal zdaj action kr na excel_export.php in dela.
Pri samem izpisu za povprečno ceno mi kr pri nekaterih izdelkih prikaže kar datum in ne vem zakaj.
Kako lahko to popravim?
Lp in hvala,
Housy
Pri samem izpisu za povprečno ceno mi kr pri nekaterih izdelkih prikaže kar datum in ne vem zakaj.
Kako lahko to popravim?
Lp in hvala,
Housy
Zgodovina sprememb…
- spremenil: Housy ()
sumoborac ::
Predvidevam da to ni krivda skripte ampak Excela, ki določene oblike številk ali decimalk prevzame za razne datume in jih samodejno "popravi" in izpiše v novi obliki.
Kako zadevo izklopiš v excelu pa nebivedu. Če v htmlju izpiše pravilno tabelo pol je hec zagotovo v excelu in pretvorbi iz htmlja v excel strukturo.
Sumoborac
Kako zadevo izklopiš v excelu pa nebivedu. Če v htmlju izpiše pravilno tabelo pol je hec zagotovo v excelu in pretvorbi iz htmlja v excel strukturo.
Sumoborac
Prid sm al pa tm ostan...
Housy ::
Sumoborac, najverjetneje bo to krivo ja, ker ko potem odprem excel datoteko, mi javi spodnje opozorilo.
Nakar stisnem "DA" in mi normalno odpre datoteko, le da je pri povprečni ceni neka zmešnjava in zgleda zamenja številke kar z datumi očitno.
Je možno, da bi moral nastaviti še kakšne headerje? Če ja, katere?
Lp in hvala,
Housy
Datoteka, ki jo poskušate odpreti, "datoteka.xls", je v drugačni obliki, kot je navedeno s pripono datoteke. Preden odprete datoteko, preverite, ali je datoteka poškodovana in ali je iz zaupanja vrednega vira. Ali želite odpreti datoteko?
Nakar stisnem "DA" in mi normalno odpre datoteko, le da je pri povprečni ceni neka zmešnjava in zgleda zamenja številke kar z datumi očitno.
Je možno, da bi moral nastaviti še kakšne headerje? Če ja, katere?
Lp in hvala,
Housy
Zgodovina sprememb…
- spremenil: Housy ()
sumoborac ::
Realnost je takšna, da html tabela ni pravi ekvivilent excel tabelam, zaradi česar tudi dobiš omenjeno opozorilo. Na način, ki ga uporabljaš kaj več neboš mogel dobiti iz tega. Za cene lahko poskusiš da zamenjaš namesto pike in daš vejico če ne potrebuješ tega excela za nadaljne procesiranje ;)
Obstajajo določeni php classi ki imajo zelo razvito podporo za excel datoteke, za tegale sem slišal že kar nekaj pozitivnih komentarjev, tako da če se ti da, lahko poskusiš (potrebuješ PHP compilean z PEAR modulom).
Sumoborac
'.(is_float($search["povprecje"]) ? str_replace(".",",",$search["povprecje"]) : $search["povprecje"]).'
Obstajajo določeni php classi ki imajo zelo razvito podporo za excel datoteke, za tegale sem slišal že kar nekaj pozitivnih komentarjev, tako da če se ti da, lahko poskusiš (potrebuješ PHP compilean z PEAR modulom).
Sumoborac
Prid sm al pa tm ostan...
Housy ::
Žal pretvorba pike v vejico ne deluje, saj še vedno dobim datum pri nekaterih vrsticah.
Bom poskusil kakšen že obstoječ php class. Bom pogledal tega, ki si ga predlagal.
Lp in hvala,
Housy
Bom poskusil kakšen že obstoječ php class. Bom pogledal tega, ki si ga predlagal.
Lp in hvala,
Housy
Zgodovina sprememb…
- spremenil: Housy ()
sumoborac ::
Preveri če je is_float res prava funkcija... včasih php spremenljivko vzame za string čeprav se notri nahaja številka in jo ne casta avtomatično v float... Poskusi zadevo shrant kot html in preveri če zamenja pike in vejice, če ne, potem poskusi kakšen drugi način npr.
Omenjeni klasi znajo bit včasih kar zalogaj, saj podpirajo celoten excel (od worksheetow, do grafov, slik in podobnih zadev)
Sumoborac
(strpos($search["povprecje"],".") !== false ? str_replace(...) : $search["povprecje"])
Omenjeni klasi znajo bit včasih kar zalogaj, saj podpirajo celoten excel (od worksheetow, do grafov, slik in podobnih zadev)
Sumoborac
Prid sm al pa tm ostan...
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | PHP povezava z MysqlOddelek: Izdelava spletišč | 925 (770) | snooze77 |
» | PHP in objektno programiranje (strani: 1 2 )Oddelek: Programiranje | 12088 (10555) | kivi113 |
» | MySQL BETWEEN dates?Oddelek: Programiranje | 1386 (1300) | Housy |
» | [php] Knjiga gostovOddelek: Izdelava spletišč | 3157 (2360) | darix |
» | [php, mysql] sortiranje izpisa iz bazeOddelek: Izdelava spletišč | 2660 (2179) | Binji |