Aus mysql / php DB File öffnen

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

  • Aus mysql / php DB File öffnen

    Guten Tag die Damen und Herren

    Ich habe folgendes Problem. Vor einiger Zeit erhielt ich die Aufgabe eine bestehende MS Access DB in eine webbasierte mysql, php GUI - DB zu verwandeln.

    Dies Klappte auch einigermasse. Alle Records habe ich in mysql importiert (es war nur ein Table, jedoch mit 96'000 Einträgen). Es handelt sich dabei um archivierte Verträge mit Attributen wie Kunde, Betrag, Datum, DocumentID, usw. Anschliessend habe ich mit PHPmaker ein GUI generieren lassen mit einer Suche. Das sieht folgendermassen aus:


    und wenn man auf "view" klickt, geht dieser link auf:


    So, jetzt kommt meine eigentliche Frage. Nun würde ich gerne auf die Document ID klicken können und der entsprechende Vertrag im .TIFF Format öffnet sich im Standard Bildbetracher von Windows. Einige Verträge sind auch .ASC files, welche mit notepad.exe geöffnet werden müssten. Mit php maker wird dies nicht realisierbar sein, habe auf jedenfall keine solche Funktion gefunden. Darum brauche ich eure Hilfe, ist das eine Grosse Sache mit PHP? Habe wirklich keine Erfahrung.
    Wäre sehr froh um Unterstützung.
    Danke und Gruss
    Racoon

  • #2
    hm, welche datei-endung / datei-typen mit welchem programm geöffnet werden, ist sache der benutzereinstellungen im betriebssystem aufm client-pc.

    ob eine änderung überhaupt mit php zu erzwingen geht, will ich mal bezweifeln...
    **********
    arkos
    **********

    Kommentar


    • #3
      Original geschrieben von arkos
      ob eine änderung überhaupt mit php zu erzwingen geht, will ich mal bezweifeln...
      Das würde auch keinen Sinn machen, denn sobald jemand mit einer anderen Konfiguration oder aus einem vernünftigen Betriebsystem auf das Dokument zugreifen möchte, gibt das wieder Probleme.
      Die Lösung ist doch ganz einfach: mach einen Link auf das entsprechnde Dokument. Und dieses wird dann, wie von arkos schon gesagt, mit dem für dieses Format auf dem Client definierten Programm geöffnet. (Ich persönlich lass mir nicht gerne vorschreiben, womit ich ein bestimmtes Dokument öffnen soll, v.a. dann wenn ich mehrere mögliche Programme zur Auswahl habe)
      Gruss
      H2O

      Kommentar


      • #4
        Das ist nicht das Problem, ich will nichts erwzingen. Das ist mir klar, dass einfach der vom Benutzer eingestellte Bildbetrachter gewählt wird, wenn das Vertrags-Sheet geöffnet wird im TIFF format. Das ist auch in Ordnung, so kann ich beim PC des Benutzers für die TIFF Endung einen geeigneten Bildbetrachter zuweisen.

        Das Problem ist die Verlinkung der TIFF sheets mit der dazugehörigen DocumentID, ich habe keine Ahnung wie vorgehen...

        Ich kann mal den Code Posten wie ich es mit MS Access - VBA Makro - gemacht habe:

        Code:
        Private Sub KUNDENNAME_DblClick(Cancel As Integer)
        
            Dim Pfad As String
            Dim Pfad1 As String
            Dim pfadasc As String
            Dim Slash As String
            Dim Datei As String
            Dim Extension As String
            Dim Sheetnr As Integer
            Dim SheetnrA As String
            Dim Extension2 As String
            Dim Extension3 As String
            Dim Exist As Integer
         
        Exist = 1
            Pfad1 = fGetPath()
            Slash = "\"
            Datei = Doc_ID
            Extension = "_PAGE_"
            Sheetnr = 1
            SheetnrA = Str(Sheetnr)
            Extension2 = "_.tif"
            Pfad = Pfad1 & Slash & Datei & Extension & SheetnrA & Extension2
            DateiÖffnen "open", Pfad, SW_MAXIMIZE
            Extension3 = ".ASC"
            
            
            Do While (Exist = 1)
        	Dim Fso, Dateiname
                        Set Fso = CreateObject("Scripting.FileSystemObject")
                        Dateiname = Pfad
            If Fso.FileExists(Dateiname) Then
                    DateiÖffnen "open", Pfad, SW_MAXIMIZE
                    Sheetnr = Sheetnr + 1
                    SheetnrA = Str(Sheetnr)
                    Datei = Doc_ID
                    Extension = "_PAGE_"
                    Extension2 = "_.tif"
                    Pfad = Pfad1 & Slash & Datei & Extension & SheetnrA & Extension2
                    Exist = 1
            
            Else
                    If Sheetnr = 1 Then
                        pfadasc = Pfad1 & Slash & Datei & Extension3
        		Shell ("C:\Windows\Notepad.exe " & pfadasc), vbNormalFocus
                    End If
        	Exist = 2
            
            End If
            Loop
        
        End Sub
        Kann man etwas in diese Richtung auch mit PHP und mysql realisieren?

        Kommentar


        • #5
          das hat mit deinem ms-marko leider nichts zu tun.

          du musst an der stelle, wo deine detailseite generiert wird, einen ganz normalen link zum dokument erstellen.

          das sind php/html grundlagen.

          such das script, welches die detailansicht generiere und poste den aufbau mal... dann kann man dir hinweise geben, wo du was machen musst.
          **********
          arkos
          **********

          Kommentar


          • #6
            Wie schon gesagt, mach einen Link (ich gehe jetzt mal davon aus, dass das Dokument selber nicht in der DB liegt, sondern der Pfad dazu) ganz einfach, statt $documentId auszugeben:
            Code:
            <a href='$docpfad'>$documentId</a>
            . das ist schon alles, da brauchst du nicht mal PHP.
            Gruss
            H2O

            Kommentar


            • #7
              Original geschrieben von H2O
              Code:
              <a href='$docpfad'>$documentId</a>
              . das ist schon alles, da brauchst du nicht mal PHP.
              kein php??? seit wann kann den html auflösen, was zb in $docpfad steht....?
              **********
              arkos
              **********

              Kommentar


              • #8
                kein php??? seit wann kann den html auflösen, was zb in $docpfad steht....?
                OffTopic:

                Kennst du denn mod_resolvePHPVarsInPlainHTML für den Apachen nicht?


                Gruss

                tobi
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #9
                  Original geschrieben von jahlives
                  OffTopic:

                  Kennst du denn mod_resolvePHPVarsInPlainHTML für den Apachen nicht?


                  Gruss

                  tobi
                  OffTopic:

                  wird das nur in der schweiz ausgeliefert?? weil <?php und ?> tippen sonst zulange dauern und die programmier-kosten in die höhe treiben würde??

                  **********
                  arkos
                  **********

                  Kommentar


                  • #10
                    arkos, hier der Ausschnitt vom 'docview.php':
                    PHP-Code:
                    ...
                    <form>
                    <table class="ewTable">
                        <tr class="ewTableRow">
                            <td class="ewTableHeader">Kundenname</td>
                            <td<?php echo $doc->KUNDENNAME->CellAttributes() ?>>
                    <div<?php echo $doc->KUNDENNAME->ViewAttributes() ?>><?php echo $doc->KUNDENNAME->ViewValue ?></div>
                    </td>
                        </tr>
                        <tr class="ewTableAltRow">
                            <td class="ewTableHeader">Dokument ID</td>
                            <td<?php echo $doc->Doc_ID->CellAttributes() ?>>
                    <div<?php echo $doc->Doc_ID->ViewAttributes() ?>><?php echo $doc->Doc_ID->ViewValue ?></div>
                    </td>
                        </tr>
                        <tr class="ewTableRow">
                            <td class="ewTableHeader">Dokument Name</td>
                            <td<?php echo $doc->Doc_Name->CellAttributes() ?>>
                    <div<?php echo $doc->Doc_Name->ViewAttributes() ?>><?php echo $doc->Doc_Name->ViewValue ?></div>
                    </td>
                    ...

                    Kommentar


                    • #11
                      ich sehe gerade, dass der dokumenten-name ohne dateityp-bezeichnung (extension) ausgegeben wird. du musst erstmal sehen, wie du den tatsächlichen dateinamen kriegst - inkl pfad zum existierenden tiff oder asc.

                      dann können wir zusammen den link bauen
                      **********
                      arkos
                      **********

                      Kommentar


                      • #12
                        noch eine Anmerkung:

                        Jap, die TIFF bzw. ASC Files sind in einem Ordner. Was jetzt noch dazu kommt ist, dass wenn es sich um ein TIFF Sheet handelt, es mehrere Seiten haben kann.

                        Diese sind wie folgt zusammengesetzt:
                        DocumentID + _Page_ + Sheet Nr. + Dateiendung

                        Ein Beispiel:
                        00003FINA029234_PAGE_ 1_.tif
                        00003FINA029234_PAGE_ 2_.tif
                        00003FINA029234_PAGE_ 3_.tif

                        Die ASC files bestehen nur aus einer Page:

                        Ein Beispiel:
                        00003FINA054627.ASC

                        Im mysql table ist nirgends der komplette Dateinamen zu finden, nur die blute DocID. Man müsste den Pfad zusammenbauen mit der Doc ID und konstanten wie "_Page_" usw. Im Access ging das. Weiss nicht wie's mit PHP aussieht.

                        Kommentar


                        • #13
                          jetzt wirds komplizierter. hast du die anzahl der seiten und die änderungen auch irgendwo in der db stehen, sodass du diese auslesen kannst?

                          wenn nicht, musst du eine funktion bauen, die sich mit file_exists() etc die richtigen dateien zusammensucht...

                          if (file_exists($Pfad.$DocumentID."_Page_".$counter."tiff"))
                          {
                          machnlinkdraus();
                          }

                          ...
                          ...
                          ...
                          **********
                          arkos
                          **********

                          Kommentar


                          • #14
                            Ohne den ganzen Thread durchgelesen und verstanden zu haben : Warum nicht die ASC-Dateien als .txt ausliefern?

                            Kommentar


                            • #15
                              Original geschrieben von pekka
                              Ohne den ganzen Thread durchgelesen und verstanden zu haben : Warum nicht die ASC-Dateien als .txt ausliefern?
                              vielleicht doch besser erstma lesen... wir sind ja noch nicht ma soweit, dass überhaupt was ausgeliefert wird
                              **********
                              arkos
                              **********

                              Kommentar

                              Lädt...
                              X