pdf datei download

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

  • pdf datei download

    hallo,
    habe ein problem mit einem datei-download (pdf), aus einer sql datenbank.

    auf einer php-seite lade ich 3 include dateien, die wiederum jede auf eine tabelle von der datenbank zugreift. es werden alle inhalte (pdf-name, pdf-größe) der tabellen richtig dargestellt. über die id der tabelle möchte ich nun die pdf-datei downloaden, nun habe ich folgendes problem:
    aus dem 1. include funktioniert es.
    aus dem 2. include, download die aus der 1. tabelle und nicht aus der 2. tabelle.
    aus dem 3. include wiederum aus tabelle 1 und nicht aus tabelle 3!
    wenn ich die 1. include datei lösche, dann ladet die 2. include aus tabelle 2 und die 3. include wiederum auch wieder aus tabelle 2!

    was muß ich tun, das jede include-datei, von der richtigen tabelle die pdf-datei downloadet?

    include (1, 2 und 3 sind gleich, nur andere sql tabelle):

    include 1 = sql tabelle_1
    include 2 = sql tabelle_2
    include 3 = sql tabelle_3

    ich hoffe mir kann jemand helfen!!!

    danke, ovation

  • #2
    Re: pdf datei download

    hier das script für include 1:
    bei include 2 wird natürlich die tabelle_2 angesprochen und include 3, tabelle_3)

    <?PHP

    if (isset($_GET['id'])) {

    // Daten über die gewünschte Datei aus mySQL lesen
    $sql = "SELECT * FROM tabelle_1 WHERE id = '".$_GET['id']."' LIMIT 1";
    $result = @mysql_query($sql);
    $row = mysql_fetch_object($result);

    header("Content-type: " . $row->filetype);

    // Daten dekodieren und an den Browser senden
    echo base64_decode($row->filecontent);

    exit;

    }
    else
    {
    $sql = "SELECT * FROM `tabelle_1` ORDER BY `id` DESC LIMIT 0, 1";
    $result = @mysql_query($sql);
    while ($row = mysql_fetch_object($result))
    {
    $row->filesize = ($row->filesize/1024);
    $row->filesize = round($row->filesize, 0);

    echo "<a href=$PHP_SELF?id=$row->id> PDF-Datei </a>
    ( PDF-Dokument: $row->filename - $row->filesize KByte )";

    }
    }

    ?>
    Zuletzt geändert von ovation; 12.09.2006, 14:01.

    Kommentar


    • #3
      Ist es Absicht, dass du immer aus Tabelle 1 liest ?

      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


      • #4
        das script bezieht sich auf include 1!
        include 2 spricht natürlich dann die tabelle_2 an
        include 3 --> tabelle_3

        Kommentar


        • #5
          3x include Dateien ? Das könntest du auch über eine lösen. Einfach einen weiteren Parameter für die Tabellennummer mitübergeben und in die Query einbauen.
          Dann musste das ganze nicht dreimal schreiben.
          Probiers mal und schau ob dann die korrekte Table gelesen wird.
          Falls du es weiter mit 3 Dateien machen willst: Wie stellst du fest welche der drei includes eingebunden werden soll ? Oder bindest du etwa einfach alle ein ?

          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


          • #6
            hallo jahlives,
            ich benutze 3 includes, weil es übersichtlicher für mich ist, wenn etwas zu ändern ist.
            ich füge alle 3 auf einmal ein

            <html>
            <head>
            <title>PDF Download</title>
            </head>
            <body>
            <table width="580" border="0" align="center" cellspacing="0">

            <?PHP
            include('include/1.inc.php');
            include('include/2.inc.php');
            include('include/3.inc.php');
            ?>

            </table>
            </body>
            </html>

            es geht ja, nur habe ich probleme mit dem download der einzelnen tabellen, weiß nicht wie ich sie expliziet über die id ansprechen soll!

            Kommentar


            • #7
              Du solltest dich in diesem Falle aber nicht über ein komisches Verhalten beschweren. Ich denke wenn du alle drei inkludierst, dann überschreibst du dir zwangsläufig einige Vars.
              Du kannst doch einfach in den Link eine weitere Var einbauen z.B. table=1
              Dann machst du
              PHP-Code:
              if(isset($_GET['table']) && !emtpy($_GET['table'])){
                  switch(
              $_GET['table']){
                      case 
              1:
                          include(
              'include/1.inc.php');
                      break:
                      case 
              2:
                           include(
              'include/2.inc.php');
                      break;
                      case 
              3:
                           include(
              'include/3.inc.php');
                      break;
                   }

              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


              • #8
                ich sollte aber alle 3 pdf.dateien zum download bereitstellen können, natürlich hat jede tabelle andere aufgaben und inhalte, sind aber alles pdf-dateien.
                zb. tabelle_1 hat 180 id's, wobei ich auf dieser seite nur immer die aktuellste (letzte id) zum download anbiete.
                die anderen 2 tabellen dienen nur für aktuelle pdf's und werden einmal in der woche updated (könnte man eventuell von 2 tabellen auf eine reduzieren). damit ist aber nicht mein problem gelöst.

                Kommentar


                • #9
                  Also wenn du alle includes so lassen willst dann schreibe mal
                  PHP-Code:
                  error_reporting(E_ALL); 
                  an den Anfang deiner Datei. Werden dir nun Fehlermeldungen um die Ohren gehauen ?

                  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


                  • #10
                    hi,
                    meinst du eh in der datei die mir includes augibt?

                    <?PHP
                    error_reporting(E_ALL);

                    include('include/1.inc.php');
                    include('include/2.inc.php');
                    include('include/3.inc.php');
                    ?>

                    KEINE FEHLERMELDUNGEN !!!

                    auch in den include dateien gib es keine meldungen

                    Kommentar

                    Lädt...
                    X