Beiträge von Bodaggnmo

    Des weiß ich nicht wo da der große Unterschied ist, weil ich die ganze Sache nie gelernt hab.

    Da hast du vollkommen Recht, dass ich mich mit der Excel Klasse gerade nur 5 Minuten beschäftigt hab. Mir ist das nur direkt aufgefallen, dass die da ein Array in dem Beispiel code "fest" reinschreiben und das in ne Excel Datei schreiben.


    Aber vielleicht führt deine Idee dann echt zum Erfolg, weil die HTML-Tabelle die gerade angezeigt wird ist bei mir ja auch ein Array, weil ich stoß die wie folgt an:

    PHP
    1. while ($line = mysqli_fetch_array($result_excel1, MYSQLI_ASSOC))


    Das heißt für mich ich bau jetzt mal des Array, also bei mir die Tabelle genauso auf wie es angezeigt werden soll, und versuch dann rauszufinden wie ich diese github Daten aufn Server bekomm, dass ich die Excelklasse verwenden kann :)


    Danke für den Einwand :)

    m.scatello

    Hab mich nachdem des wsl nicht mehr supportet wird nicht damit befasst.. Hab auch keine Ahnung wie ich das einbauen soll.



    Code
    1. $data = array(
    2. 'Name' => 'Redmann',
    3. 'Sex' => 'male'
    4. );
    5. $excel = new EasyPHPExcel('My first Excel');
    6. $excel->setHeader(array_keys($data))
    7. ->addRow(array_values($data))
    8. ->save('example1.xlsx');

    So wies da ist, werden die Daten ja fest in des Array reingeschrieben. Bei mir ist des ja aber alles komplett dynamisch. Die Tabelle kann über 70 Zeilen haben, oder auch nur eine..

    Die Benutzer können spezifisch nach Ihrer Auswahl die Ergebnisliste filtern. Die sollen sie dann downloaden können. Das heißt die Excel-Tabelle sieht von Benutzer zu Benutzer unterschiedlich aus. Das ist keine fertige Tabelle sondern wird immer neu generiert, je nachdem was die eben auswählen. Die CSV wird ja dann noch generiert.

    Das einmalige Einstellen pro Benutzer stellt leider ein Problem dar. Wie gesagt, ich muss es leider hinbekommen, dass ohne Einstellungen sich die Leute über den Downloadbutton eine auswahlspezifische Exceltabelle runterladen können. Das einzige was immer gleich ist sind die Überschriften der Spalten.

    Ja das Einstellen, auch wenn's nur einmal gemacht werden muss, ist eben das Problem, dass die Leute "überfordern" wird. Ich muss denen die Tabelle fertig liefern.


    Ich denk ich werd dann jetzt ein neues php-File zusammen programmieren, in dem ich dann doch eine html Tabelle erzeuge, und über die Button die Datei einfach als Download versuch aufzurufen. Das ganze ist für den Benutzer dann "idiotensicher" und die müssen nichts mehr einstellen, wenn ich die html Tabelle runterladen lasse.


    Bzw. funktioniert das überhaupt, weil csv ist ja eben kommasepariert und die html Tabelle wird ja dann bestimmt auch über kommas getrennt?

    Okay danke.


    Klappt wunderbar die Vorgehensweise.


    Verbindung zum Server hat nur mein Team und ich aufn Rechner. Da das Portal aber firmenintern für jeden über das Intranet zugänglich ist, haben die nur die Verbindung über die Intranetseite. Also die zweite Möglichkeit fällt leider raus.


    Die erste Möglichkeit ist zwar zielführend, jedoch bin ich mir ziemlich sicher, dass es für die Leute zu umständlich ist, wenn die nach dem Download erst noch die Ansicht anpassen müssen. Kann ich das irgendwie vorher programmieren, dass es direkt als "saubere" Tabelle angezeigt wird, wie in SQL?


    Wenn nicht muss ich vl doch den Umweg über eine HTML-Tabelle machen, damit die Benutzer es gleich in der richtigen Ansicht haben..

    Alles klar.


    DB Aufbau kann man sich vorstellen, wie eine riesen Excel Datei mit mehreren Tabellenblättern. Jeder Geschäftsbereich hat ein eigenes Tabellenblatt. Dort sind verschiedene Spalten mit bereichsspezifischen Inhalten.

    Die DB beruht auf der genannten riesigen Excel Datei die wir mittels perl Skript immer wieder in die SQL Datenbank jede Nacht hochladen. Wenn ich in HeidiSQL mit dir Datenbank anschau, sieht es genauso aus wie die Excel Liste. Ich kann die Tabellenblätter wählen und dort die jeweiligen Daten sehen.


    Folgende Beispielquery wird verwendet

    PHP
    1. $query_excel = "SELECT * FROM Bereich 1 WHERE _display = 'x' ORDER BY Nummer ASC";


    und die Funktion zum Download sieht bei mir so aus:



    Die Überschriften werden nicht mit angezeigt und es ist auch nicht in der Spaltenform wie in der Datenbank..

    Danke für eure Hilfe

    Dateien

    • Datenbank.jpg

      (100,78 kB, 3 Mal heruntergeladen, zuletzt: )
    • Excel.jpg

      (121,81 kB, 3 Mal heruntergeladen, zuletzt: )

    Ne so wie die in Excel angezeigt werden soll besteht die Tabelle leider noch nicht.

    Die Ergebnisliste die angezeigt wird, zieht sich die Tabelleninhalte über die Querys aus der SQL Datenbank jedes mal, je nach Benutzereingabe dynamisch. Jedoch sind hier die Spaltenreihenfolge anders und die weiterführenden Informationen hängen im Modal. Deswegen dachte ich ja, muss ich eine neue Tabelle erzeugen, die genauso aussieht, wie sie dann in der CSV aussehen soll.


    Ok des mim Button hab ich verstanden danke.

    Nachdem ich kompletter Programmierneuling bin, schien mir das, für mein "Können"., einfachste zu sein eine HTML Tabelle zu bauen, die genauso aussieht wie es dann in Excel aussehen soll.


    Deine Vorschläge klingen klar deutlich besser und ist mit Sicherheit auch die "saubere" Lösung meiner Problemstellung.

    Dazu müsste ich dann folglich in SQL einen CREATE TABLE einbauen, bei dem ich dann die einzelnen Spalten die, die ich brauch, abfrage und dann mit UNION zu einem Table vereine. Ist der Gedankengang richtig?


    Dann müsste ich ja nurnoch schauen wie ich die Funktion in den Button einbau, um das ganze erst beim Klick auszuführen.

    Ne das ist genau richtig wie du es sagst.


    Ich glaub das Problem liegt schonmal daran, dass ich die ausgeblendete Tabelle einfach unten an die ursprüngliche Tabelle, die der Benutzer sieht, dran gehängt hab. Denn er schreibt in mein $result_excel1 auch alle anderen Daten, die ich in der ausgeblendeten Tabelle noch gar nicht stehen hab. Das heißt der Bezug ist schonmal falsch. Ich schätz es macht mehr Sinn die Downloadfunktion in einer eigenen PHP Datei zu schreiben, und darauf irgendwie Bezug nehmen mit include oder sowas..


    bzw weißt du da den richtigen Syntax? Ich muss ja dann mit dem Button eine andere PHP Datei aufrufen. Ich hab bezieh mich schonmal aus ner anderen Datei, da hab ich das per Linkübergabe gemacht


    PHP
    1. echo '<form method="POST" action="result_evidence_book.php?milestone='.$milestone.'&peptype='.$peptype.'&pl='.$pl.'&lang='.$lang.'&first_approver_1='.$first_approver_1.'" target="evidencebook_result">', PHP_EOL;


    und dann würde ich den button einfach so in der Art machen:


    PHP
    1. echo '<button><a href="test.csv" download><input type="submit" name="Submit" value="Download"></button>';

    Okay die csv Datei runterladen klappt jetzt. Hab


    PHP
    1. echo '<button><a href="/test.csv" download>download</button>';


    geändert in

    PHP
    1. echo '<button><a href="test.csv" download>download</button>';


    Allderdings sieht das aus wie Kraut und rüben.. Alles durcheinander und überhaupt nicht in der Tabellenform, wie ich das anzeigen lass..

    Um alle Informationen dem Benutzer ordentlich präsentieren zu können, brauch ich in der Ergebnistabelle Modals, weil die Tabelle ohne die viel zu groß ist. Die Modalinformationen kann der Benutzer bei der sichtbaren Ergebnistabelle per Klick auf den Namen des Ergebnisses öffnen. Im Code stehen die Informationen fürs Modal also mitten drin.


    In der Exceltabelle (csv Datei) die der Benutzer runterladen kann, müssen dann aber alle Informationen sauber nacheinander aufgeführt werden. Dies bedeutet, dass ich ein andere Tabellenstruktur brauch, als die, die der Benutzer auf der Website sieht. Da muss auch die Reihenfolge der Spalten verändert werden, und ich dachte das ist dann am einfachsten einfach schnell ne neue Tabelle zu machen und die dann auszublenden. Den Code den ich gepostet hat ist auch nur ein sehr kleiner Teil davon, wie umfangreich die Tabelle am Ende dann eigentlich wird. Jedoch sollte ich ja so erstmal die Funktionalität der Downloadfunktion für eine .csv Datei herstellen können. Aber allein bei der kleinen Tabelle, stimmt ja schon irgendwas nicht weil die Downloaddatei bei mir ja dann "test_csv" und nicht "test.csv" heißt, obwohl ich "test.csv" als namen beim fopen gemacht hab..

    Die Ergebnisse werden bereits angezeigt als eigenständige Tabelle weiter oben im Code.

    Da kann man dann auf die Ergebnisse klicken und Modals öffnen, mit weiterführenden Informationen. Beim Download soll aber alles sauber Spalte für Spalte dastehen, deswegen muss ich ne neue Tabelle machen, die in die gewünschte Reihenfolge bringen, und sobald es geht will ich die einfach mit Display style=None ausblenden.

    Ja stimmt des hattest mal gesagt, dass ich des alles als echo machen soll.


    Naja eine .csv Datei kann ich mit Excel dann öffnen?


    Ich seh grad ich hab meinen Eintrag nochmal bearbeitet nachdem du geantwortet hast scheinbar, weiß nicht ob vorher schon der ganze Code da war

    So ich hab mich jetzt mal dran versucht..


    Query

    PHP
    1. $query_excel1 = "SELECT * FROM $database_name
    2. JOIN $pl ON $pl.template_id_$peptype = $database_name.id_excel
    3. JOIN $database_name_eb ON $database_name_eb.evidence_nr = $pl.pep_evidence_id
    4. WHERE ($pl.first_approver_".$peptype."_".$lang."_1 LIKE '$first_approver_1' or $pl.first_approver_".$peptype."_".$lang."_2 LIKE '$first_approver_1' or $pl.first_approver_".$peptype."_".$lang."_3 LIKE '$first_approver_1')
    5. && ($database_name_eb.evidence_type_".$lang." LIKE '$evidence_type')
    6. && ($database_name_eb.responsible_function_".$lang." LIKE '$responsible_function')
    7. && ($database_name_eb.evidence_level LIKE '$evidence_level')
    8. && ($evidence_relevance_query_all)&&($pl.evidence_display = 'x')
    9. ORDER BY $spal $sort ";
    10. $result_excel1 = mysqli_query($link, $query_excel1) or die("Request failed: " . mysqli_error($link));


    Nach der Query hab ich dann ne Tabelle aufgebaut, die ich einfach mit Display style dann ausblenden kann.


    Danach hab ich die genannten Funktionen eingebaut, um erstmal eine test.csv zu erstellen und hab die dann mit dem Array befüllt. Dann noch den Button zum download eingefügt und die php Datei geschlossen



    Ich wollt das jetzt erst auf meinem localhost testen. Es wird kein Fehler angezeigt und der Downloadbutton steht auch da. Nur wenn ich jetzt drauf klicke fragt er ob ich test_csv herunterladen möchte, und sagt dann test_csv konnte nicht heruntergeladen werden. Des müsste ja auch eigentlich test.csv sein..


    Danke für eure Mühe


    edit: Die Datei die ich dann aufn PC hat heißt auch ganz komisch: test_csv.pevkgcg.partial

    Bin grad beim coden und googeln auf noch etwas anderes gestoßen, den Excel Button (https://www.microsoft.com/en-u…ringing-excel-everywhere/). Angeblich nur 2 Codezeilen einfügen und es sollte gehen:



    1. Copy and paste this code above the HTML table you want to add the Excel Button to:

    <a href=”#” name=”MicrosoftExcelButton” data-xl-buttonStyle=”Standard”></a>

    2. Copy and paste this code (as a single line) right above the closing body tab (</body>):

    <script type=”text/javascript” src=”http://r.office.microsoft.com/r/rlidExcelButton?v=1&kip=1″></script>



    Ist aber schätz ich auch veraltet, oder kennt ihr das? Bei mir funktioniert das aufjedenfall nicht.

    Die dynamische Tabelle hab ich mittlerweile fertig gefetched, jetzt versuch ich mal die Funktionen ausen rum zu bauen.

    Hallo Zusammen,

    ich habe diese Frage bereits in einem Datenbankforum gestellt, jedoch wurde mir dort mitgeteilt, dass es weniger mit SQL zu tun hat und ich mich doch eher an ein PHP Forum wenden soll (http://www.datenbankforum.com/…datenbank-erstellen.4626/). Ich hoff mal, das ist jetzt kein Crosspost, nur ich war wohl vorher an der falschen Adresse.


    ich arbeite an einer Datenbank Website. Die Rohdaten dafür liegen in einer riesigen Exceldatei, die ich mittels einem Pearl Skript in die SQL Datenbank schieb. Von dort aus werden die Daten über SQL-Abfragen auf der Website dargestellt mittels PHP/HTML.

    Der Benutzer kann verschiedene Kriterien festlegen, anhand derer wird dann dynamisch eine Ergebnisliste angezeigt.

    Nun besteht die Anforderung darin, dass der Benutzer auf einen Button klicken kann, und dann automatisch die Ergebnisse in Excel angezeigt werden.

    Da aber noch mehrere Informationen in der Excelliste angezeigt werden sollen, hab ich vor eine separate SQL-Abfrage zu machen, und diese dann in Excel anzeigen zu lassen.

    Bei meiner Internetrecherche stoß ich immer wieder auf MS Access, in meinem Fall soll ja aber der Benutzer die Möglichkeit haben, per Mausklick auf einen Button sich direkt die Ergebnisse als Excel Liste downzuloaden. Kann mir hier jemand helfen?

    Vielen Dank im Voraus

    Hallo Zusammen,


    weiß jemand wie ich bei einem Hyperlink mit dem ich ein Modal öffne einen Trigger für ein Javascript einbauen kann? Ich habe eine dynamisch generierte Ergebnisliste. Wenn man auf die Ergebnisse klickt, öffnet sich ein Modal. Dieses möchte ich als tabbed Modal darstellen. Das Javascript funktioniert immer nur beim aller ersten Eintrag der Liste, deswegen denk ich, dass ich in den Hyperlink irgendwie nochmal einen Trigger für die Javafunction einbauen muss, oder den ganzen Modalbereich in eine Schleife packen? Nur komm ich dann nicht auf die Bedingung für die Schleife...


    Hyperlink zum öffnen des Modals:

    echo "<a href='#' onclick="."document.getElementById('$item_count').style.display='inline-block'"." >$doc_name</a>";


    Vielen Dank