Probleme beim auslesen von bildern aus einer mysql DB

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

  • Probleme beim auslesen von bildern aus einer mysql DB

    Hallo

    Ich versuche mich gerade an einem Bilder upload in eine MySQL Datenbank.

    Das hochladen scheint auch zu funktionieren, aber beim Auslesen will er irgendwie net so recht .

    Leider bekomme ich auch keine fehlermeldung die vielleicht was erahnen lässt.

    Das script zeigt mir nur 2 leere Tabllenfelder ohne bild.

    Wäre nett wenn mir hier wer weiterhelfen könnte)


    Hier mal das script zum auslesen der bilder
    PHP-Code:
    <html>
    <head>
    <title>bildanzeigen</title>
    </head>
    <body>
    <div align="center">
    <?php
    error_reporting
    (E_ALL);
    $tablename="mopics";
    $sql="SELECT ID FROM $tablename";
    $link=mysql_connect("localhost""xxx""xxx");
    mysql_select_db("usr_web553_1"$link);
    $result=mysql_query($sql$link);
    if(
    mysql_num_rows($result)>0)
    {

                for(
    $i=0;$i<mysql_num_rows($result);$i++)
             {
              echo 
    "<table  border=\"1\">";
                        echo 
    "<tr>";
                        echo 
    "<td><img src=\"bildanzeigen.php?ID=mysql_result($result$i, 'ID')\">";
                        echo 
    "</td>";
                        echo 
    "</tr>";
                        echo 
    "</table>";
                        }
    }
    else
    {
    echo 
    mysql_error() ;
    }                
    ?>
    </div>
        </body>
    </html>
    Ein Bild von der MySQL Tabelle in PHPmyadmin
    mysql tabelle

    Und ein Bild von den Datensätzen
    mysql datensätze

  • #2
    die stringverkettung kann so nicht funktionieren. schau dir (und zeig hier) den html-code an, der durch dieses script generiert wird.

    Kommentar


    • #3
      Hallo

      An diesen bereich habe ich auch schon gedacht um genaue zu sein
      an diese zeile

      PHP-Code:
      echo "<td><img src=\"bildanzeigen.php?ID=mysql_result($result$i, 'ID')\">"
      doch irgendwie finde ich den fehler dort nicht

      ein kleiner denkanstoß wäre nett falls es diese zeile ist.

      schon thx
      mo

      Kommentar


      • #4
        denkanstoß weiter oben.
        nochmal aufmerksam durchlesen.

        Kommentar


        • #5
          hiho

          irgendwie komme ich da nicht weiter

          ich habe die ausgabe mal um den dateityp erweitert und das funktioniert.
          PHP-Code:
          echo "<table  border=\"1\">";
                              echo 
          "<tr>";
                               echo 
          "<td><img src=\"bildanzeigen.php?ID=mysql_result($result$i, 'ID')\">";
                              echo 
          "</td>";
                              echo 
          "<td>";
                                                  echo 
          mysql_result($result,$i'format');
                              echo 
          "</td>";
                                                  echo 
          "</tr>";
                              echo 
          "</table>";
                              } 
          habe dann auch mir mal nur den wert von ID ausgeben lassen
          was auch funktioniert hat
          PHP-Code:
           echo "<table  border=\"1\">";
                              echo 
          "<tr>";
                               echo 
          mysql_result($result$i'ID');
                              echo 
          "</td>";
                              echo 
          "<td>";
                                                  echo 
          mysql_result($result,$i'format');
                              echo 
          "</td>";
                                                  echo 
          "</tr>";
                              echo 
          "</table>";
                              } 
          aber wie mach ich das er das Bild mit der entsprechenden ID darstellt.

          So funktioniert es irgendwie nicht

          PHP-Code:
           echo "<td><img src=\"bildanzeigen.php?ID=mysql_result($result$i, 'ID')\">"

          Ich bitte um Erlösung )

          schonmal Danke im voraus

          mo

          Kommentar


          • #6
            na siehst du, geht doch.

            und jetzt führe folgendes aus und löse dein problem anschließend selbst:
            PHP-Code:
            $foo 'ich bin ein wert irgendeiner funktion';
            // oder z.b.
            $foo phpversion();

            echo 
            '<h1>'.$foo.'</h1>'

            Kommentar


            • #7
              Hallo

              Ich bin mir nicht sicher ob ich deinen Tipp jetzt richtig befolgt habe ?

              Habe die Zeile mal so geändert.


              PHP-Code:
              $bild mysql_result($result$i'ID');
                                            echo 
              "<table  border=\"1\">";
                                  echo 
              "<tr>";
                                  echo 
              "<td><img src=\"bildanzeigen.php?ID=.$bild.\">";
                                  echo 
              "</td>";
                                  echo 
              "<td>";
                                                      echo 
              mysql_result($result,$i'format');
                                  echo 
              "</td>";
                                                      echo 
              "</tr>";
                                  echo 
              "</table>"
              Aber das Ergebnis bleibt das gleiche.

              Wenn ich das bild über die URL
              http://stg.de/bildanzeigen.php?ID=1
              direkt ansprechen möchte bekomme ich auch wieder nur die Tabelle
              angezeigt.

              Eigentlich müsste ich das Bild so doch angezeigt bekommen.

              hier nochmal ein Bild von der Mysql Tabelle
              http://stg501.de/mo/mysql-table.jpg

              und eins von den Datensätzen
              http://stg501.de/mo/mysql-datens%E4tze.jpg

              vielleicht ist da auch noch ein Fehler drin.

              naja schonmal Danke und ich werde da mal weiter rumprobieren.

              Zuletzt geändert von wahsaga; 22.05.2006, 10:51.

              Kommentar


              • #8
                also etwas systematischer geht es um folgendes:

                in strings mit Anführungszeichen werden $variabeln ersetzt, aber Funktionsaufrufe nicht ausgewertet. Für Funktionsaufrufe muss man den String aufteilen und Punkte verwenden, oder den Funktionsaufruf in einer Variabeln zwischenspeichern. Die beiden korrekten Varianten sind:

                echo "<td><img src=\"bildanzeigen.php?ID=". mysql_result($result, $i, 'ID') . "\">";

                $id=mysql_result($result, $i, 'ID');
                echo "<td><img src=\"bildanzeigen.php?ID=$id\">";


                Bei den nachfolgenden Versuchen wurde das = Zeichen nach ?ID vergessen, soweit sie nicht überhaupt daneben sind.

                Kommentar


                • #9
                  kommt dazu, dass das php-Skript bildanzeigen.php, welches das Bild liefern sollte,

                  http://stg.de/bildanzeigen.php?ID=1

                  vermutlich auch fehlerhaft ist, beziehungsweise nicht existiert.

                  poste doch inzwischen mal das bildanzeigen.php !
                  Zuletzt geändert von muh (newbie); 22.05.2006, 09:59.

                  Kommentar


                  • #10
                    hallo

                    hier mal die bildanzeigen.php

                    PHP-Code:
                    <html>
                    <head>
                    <title>bildanzeigen</title>
                    </head>
                    <body>
                    <div align="center">
                    <?php
                    error_reporting
                    (E_ALL);
                    $tablename="mopics";
                    $sql="SELECT ID, format FROM $tablename";
                    $link=mysql_connect("localhost""xxx""xxx");
                    mysql_select_db("usr_web553_1"$link);
                    $result=mysql_query($sql$link);
                    if(
                    mysql_num_rows($result)>0)
                    {

                                for(
                    $i=0;$i<mysql_num_rows($result);$i++)
                             {
                              
                                                  echo 
                    "<table  border=\"1\">";
                                        echo 
                    "<tr>";
                                       echo 
                    "<td><img src=\"bildanzeigen.php?ID="mysql_result($result$i'ID') . "\">";
                                        echo 
                    "</td>";
                                        echo 
                    "<td>";
                                                            echo 
                    mysql_result($result,$i'format');
                                        echo 
                    "</td>";
                                                            echo 
                    "</tr>";
                                        echo 
                    "</table>";
                                        }
                    }
                    else
                    {
                    echo 
                    mysql_error() ;
                    }                
                    ?>
                    </div>
                        </body>
                    </html>
                    und hier mal das Ergebnis wenn man das Script ausführt
                    Ausgabe

                    schonmal danke

                    mo
                    Zuletzt geändert von stigger; 22.05.2006, 10:21.

                    Kommentar


                    • #11
                      also hör mal, die bildanzeigen.php ruft in einer <table><img> die bildanzeigen.php auf, welche in einer <table><img> die bildanzeigen.php aufruft, welche in einer <table><img> die bildanzeigen.php aufruft usw.

                      die Bilddaten-blob werden überhaupt nie ausgelesen und übermittelt.

                      die php-Syntax ist perfekt.

                      PS Der Zirkel geht so lange, bis es dem browser zu blöd wird, immer neue Bilddatenversprechen zu bekommen.. sonstwäre er unendlich lang.

                      PSPS editiere dein post und mache *** für die Zugangsdaten zur datenbank.

                      Kommentar


                      • #12
                        so ich habe das jetzt mal in 2 dateien aufgeteillt

                        wenn ich über die URL
                        http://stg501.de/picauslesen.php?ID=1
                        das bild aufrufe wird es korrekt angezeigt

                        aber das auslesen aller bilder klappt irgendwie noch nicht

                        hier mal die picauslesen.php
                        PHP-Code:
                        <?php
                                $tablename
                        ="mopics";
                                        
                        $sql="SELECT ID,bild,format FROM $tablename WHERE ID=".$_GET['ID'];
                                        
                        $link=mysql_connect("localhost""xxx""xxx");
                                        
                        mysql_select_db("usr_web553_1"$link);
                                        
                        $result=mysql_query($sql$link);
                                                   if(
                        mysql_num_rows($result)==1)
                                                                             {
                                                                             
                        $bild=mysql_result($result,'ID','BILD');
                                                                             
                        $format=mysql_result($result,'ID','format');
                                                                             
                        $header="Content-type:".$format;
                                                                             
                        header($header);
                                                                             echo 
                        $bild;
                                                                             }
                                                                             else
                                                                                                      {
                                                                                                     die (
                        '<h1>kein Bild</h1>');
                                                                                                     } 
                        ?>

                        und die bildanzeigen.php

                        PHP-Code:
                        <html>
                        <head>
                        <title>bildanzeigen</title>
                        </head>
                        <body>
                        <div align="center">
                        <?php
                        error_reporting
                        (E_ALL);
                        include 
                        "picauslesen.php";
                        if(
                        mysql_num_rows($result)>0)
                        {

                                    for(
                        $i=0;$i<mysql_num_rows($result);$i++)
                                 {
                                  
                                                      echo 
                        "<table  border=\"1\">";
                                            echo 
                        "<tr>";
                                           echo 
                        "<td><img src=\"picauslesen.php?ID=".mysql_result($result$i'ID') . "\">";
                                            echo 
                        "</td>";
                                            echo 
                        "<td>";
                                                                echo 
                        "</td>";
                                                                echo 
                        "</tr>";
                                            echo 
                        "</table>";
                                            }
                        }
                        else
                        {
                        echo 
                        mysql_error() ;
                        }                
                        ?>
                        </div>
                            </body>
                        </html>
                        Wenn ich die bildanzeigen.php ausführe bekomme ich nun folgende
                        meldung:




                        Notice: Undefined index: ID in /srv/www/htdocs/web553/html/picauslesen.php on line 3

                        Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/web553/html/picauslesen.php on line 7
                        kein Bild
                        ein kleiner hinweis wäre net schlecht werde aber versuchen das problem selber zu finden.

                        schonmal danke

                        mo

                        Kommentar


                        • #13
                          Original geschrieben von stigger
                          PHP-Code:
                          include "picauslesen.php"
                          Was soll das denn jetzt noch da drin?
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            ich dachte das die bildanzeigen.php den wert von $result brauch
                            damit die schleife zum ausgeben funktioniert

                            wenn ich das
                            PHP-Code:
                            include "picauslesen.php"
                            weglasse bekomme ich folgende Fehlermeldung
                            Notice: Undefined variable: result in /srv/www/htdocs/web553/html/bildanzeigen2.php on line 10

                            Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/web553/html/bildanzeigen2.php on line 10
                            naja mal schauen ob mir noch was anderes einfällt für die ausgabe

                            aber schonmal danke

                            mo

                            Kommentar


                            • #15
                              Überleg dir doch bitte endlich mal logisch, wie das ganze getrennt sein muss, damit das funktionieren kann.

                              Wenn die Gesamtanzahl an Bildern ermittelt werden soll, kann das wohl kaum Aufgabe der "picauslesen.php" sein - weil dieses Script nur die Daten eines einzigen Bildes ausgeben soll, und absolut nicht mehr.
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X