Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Lösungsansatz - Excel Writer - Daten aus Formular

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Lösungsansatz - Excel Writer - Daten aus Formular

    HI!

    folgender Sachverhalt.
    auf seite ansprech.php kann ich über eine form nach bestimmten Namen oder Orten suchen. Auf der gleichen Seite bekomm ich dann die Ergebnisse in einer Tabell aufgelistet.
    Ich brauch jetzt genau diese Tabelle in einer Excel Datei.

    Ich benutzte den PERL Spreadsheet Excel Writer, der seinen Dienst auch wunderbar verrichtet. Von Ansprech.php gehe ich auf "macheineexcel.php"

    Mein Problem ganz schlicht:
    Ich komme nicht an die POST Daten heran. Eine Extra MySQL anfrage in der datei machdieexcel.php kommt ja nicht in frage weil die suchkriterien nicht mit einbezogen sind.

    Wie könnte ich das realisieren? Bzw. wie kann ich das POST ergebnis auf einer anderen php seite abfrage ausser eine komplett neue und exakt gleiche form bzw sql abfrage zu machen??
    eine session?


  • #2
    Zitat von taurus Beitrag anzeigen
    Von Ansprech.php gehe ich auf "macheineexcel.php"
    Wie passiert das?
    Server-seitig durch include oder require? Oder veranlasst Du den Browser, eine neue Anfrage an den Server zu senden (Link, form submit, o.ä.)?

    Kommentar


    • #3
      durch einen link in der tabelle

      mh da fällt mir ein, ich könnte doch einen zusätzliche buttons in die form setzen mit der ich dann nur die machexle ansprech und gleihc alle POST mitsende?
      oder gäbe es einen simpleren weg? von sessions habe ich "noch nicht" ahnung..

      Kommentar


      • #4
        Dann empfehl ich dir, dich mit session zu beschäftigen.
        Gruß JEGO

        Ein PHP Script tut, was Du schreibst, nicht was Du willst.

        Kommentar


        • #5
          andere oder auch "einfacherere" möglichkeitne gibt es nicht oder?

          Kommentar


          • #6
            Doch, aber ob die einfacher sind, ist fraglich.

            z.B. wie du schon gesagt hast, erneut ein Formular senden oder alle Variabeln via GET senden. etc.
            Aber session scheint die bessere Methode zu sein.
            Gruß JEGO

            Ein PHP Script tut, was Du schreibst, nicht was Du willst.

            Kommentar


            • #7
              Deine Query zum Ausgeben der Daten könnte z.B. so aussehen:
              PHP-Code:
              $sql "SELECT feld1,feld2,feld3 FROM tbl WHERE dies = '" $das "'"
              Diese Query musst du an die Seite, die die csv-Datei baut übergeben, damit du die gleichen Voraussetzungen hast (Vorausgesetzt, die betroffene Tabelle verändert sich nicht in der Zwischenzeit).

              Das geht am einfachsten per Sessions.

              1. Seite:

              PHP-Code:
              session_start(); //  in der Zeile 1

              // Query bauen
              $sql "SELECT feld1,feld2,feld3 FROM tbl WHERE dies = '" $das "'";
              $erg mysql_query($sql) or die(mysql_error());

              // Daten ausgeben

              // Query fertig
              $_SESSION['query'] = $sql

              2. Seite:

              PHP-Code:
              session_start(); //  in der Zeile 1

              // Query aus Session holen
              $sql $_SESSION['query'];
              $erg mysql_query($sql) or die(mysql_error());

              // Daten ausgeben / CSV erstellen 
              Falls die betroffene tabelle sich durch Eingaben anderer Pesonen zwischen ansehen und CSV-ausgeben verändert, so musst du anders vorgehen.
              PHP-Code:
              if ($var != 0) {
                
              $var 0;

              Kommentar


              • #8
                PHP-Code:
                $_SESSION['query'] = $sql
                funktioniert perfekt )

                danke

                noch was... welche alternative gäbe es denn das die tabelle die gerade durch das form abgeschickt wurde und in der session steht nicht durch eine erneute form anfrage verloren geht?
                erneut ein form wäre 1.möglichkeit aber etwas umständlich bzw in meinen augen zu viel unnötiger code. noch was? <-- alles unwichtig passt so )

                Kommentar


                • #9
                  Jemand sich schonmal mit dem spreadsheet excel writer beschäfigt? und sich gedanken gemacht wie man die zeilen automatisch an den inhalt anpassen könnte?
                  eine möglichkeit wäre den spalten bestimmte breiten zu geben siehe hier wobei mit "autofit" hat das ja nichts zu tun letzeres wäre natürlich praktischer... und genau das gibts hier aber das ist doch PERL?

                  theoretisch müsste ich doch "nur" was schreiben das von der sql abfrage die maximale länge einer tabellenspalte rausfindet und dann dementsprechendes die zellenbreite in der dementsprechendenZelle/Cell
                  setzt?...

                  Kommentar


                  • #10
                    automatischer zeilenumbruch:
                    $format_name->setTextWrap();

                    Zeilenspalte definieren:
                    $worksheet->setColumn(anfangsspalte,endspalte,länge);

                    näheres gibts im perl manual...


                    grüße
                    felix

                    Kommentar

                    Lädt...
                    X