Bilder aus DB auslesen / Pfad in DB

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

  • Bilder aus DB auslesen / Pfad in DB

    Hallo Leute,

    habe ein Problem mit Bildern. Hab schon im Forum gelesen konnte aber keine brauchbaren Infos für mein Problem finden.

    Habe gelesen, dass es zwei Tabellen, eine in der alle Daten stehen ausser die Bilddaten.
    Die Bilder liegen auf dem Server in einerm Verzeichnis
    /bilder/bild/MB1.jpg
    /bilder/bild/MB2.jpg
    .......... u.s.w

    In der zweiten DB- Tabelle " bildpfad" habe ich dieSpalten
    "id_bild " und "pfad" generiert.

    wobei ich die Synatx: /bilder/bild/MB1.jpg benutzt habe.

    Meine Frage, ist die Syntax und ist der Tabellentyp InnoDB richtig?

    Danke für die Hilfe

  • #2
    Versuche es mal wenn du / weglässt also das erste ganz am anfang vom pfad

    ...nur ne idee ka obs geht

    Gruß Jan

    Kommentar


    • #3
      Bin am Verzweifeln

      Hallo Leute
      habe immer noch das Problem mit dem Pfad in mysql DB.

      hbae den Pfad in der mysql DB in einer extra Tabelle namens "bilderpfad"eingegeben.


      Tabelle: bilderpfad

      bildnr typ pfad typ
      1 Int(5) /bilder/bild1/MB1.jpg varchar(30)


      die Bilder sind im Verzeichnis:

      local Server auf /bilder/bild1/MB1.jpg

      /bilder/bild1/MB2.jpg
      u.s.w




      das script:
      $verbinden=mysql_query("SELECT `pfad` FROM `bilderpfad` where `bildnr`=$nummer");
      while($row = mysql_fetch_object($verbinden))
      {
      echo $row-> pfad;
      }
      mysql_free_result ($verbinden);

      $zeiger=mysql_query("SELECT `Marke` FROM `autodb` where `lfdnr`=$nummer");
      $result = mysql_fetch_array($zeiger);
      {
      echo $datensatz1=$bildpfad ['pfad']."<br>";
      echo $datensatz2 = $result['Marke'];
      }



      Ausgabe auf dem Bildschirm:

      /bilder/bild1/MB1.jpg
      BMW


      Wie man sehen kann , wird der Pfad aus der Abfrage ausgegeben,
      jedoch nicht das Bild, welches im Verzeichnis liegt.

      Was ist falsch?

      Danke!

      Kommentar


      • #4
        schon mal was vom <img>-tag gehört?

        gruß
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Danke Dir für Deinen Tipp.
          Hat jedoch nichts gebracht.

          Ich bin am Ende, mit meinem Latin

          Kommentar


          • #6
            und wieso funktioniert das nicht?
            PHP-Code:
            echo '<img src="'.$bildpfad ['pfad'].'"><br>'
            hast du dann einen broken link?

            gruß
            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Hallo Peter,

              danke für Deine Hilfe.
              Habe echo '<img src="'.$bildpfad ['pfad'].'"><br>'; probiert.
              Funktioniert noch nicht.
              Es wird ein LEERES BILD ausgegeben.

              Das Bild erscheint nicht.

              Der pfad "bilder/bild1/MB1.jpg" ist doch ein array? dann müsste man doch mysql_fetch_array ($verbinden)) und nicht wie gerade verwendet
              mysql_fetch_object($verbinden)) schreiben?

              Oder ist die Abfrage nach dem pfad falsch?

              $verbinden=mysql_query("SELECT `pfad` FROM `bilderpfad` where `bildnr`=$nummer");
              while($row = mysql_fetch_object($verbinden))

              Es müsste doch ein Streaming vom server kommen,wenn es funkionieren würde?
              Ich weiss nicht weiter!

              Danke für Deine Hilfe.

              P.S bin langsam am Verzweifeln

              Kommentar


              • #8
                ist $nummer immer einzigartig, oder gibt es mehrere bilder dazu?
                du solltest deine ganze konstruktion noch mal überdenken.

                - warum einmal fetch_object?
                - warum dann fetch-array?

                verknüpfe die beiden tabellen und arbeite dann mit
                joins
                dann hast du nur eine abfrage, und alle daten, die du benötigst.

                gruß
                peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  Keine Bilder/Datenausgabe

                  Hallo zusammen,

                  habe zwei Tabellen, die ich miteinander verbinde.
                  Anschliesend frage ich die beiden Tabellen ab und bekomme keine Ausgabe(Kein Bild und Daten).

                  Script:
                  {
                  $sql ='SELECT bilderpfad.pfad,autodb.Marke,autodb.Modell,autodb.Kilometer,autodb.Baujahr,autodb.Erstzulassung,auto db.Getriebeart,autodb.Farbe,autodb.Vorbesitzer FROM bilderpfad,autodb WHERE autodb.lfdnr=bilderpfad.bildnr';
                  $zeiger=mysql_query($sql);

                  //Schleife und holen der Abrage
                  WHILE($result=mysql_fetch_array($zeiger));
                  }
                  {
                  echo '<img src="'.$result ['bilderpfad.pfad'].'"><br>';
                  echo $datenresult=$result['autodb.Marke'];
                  }

                  Weiss nicht weiter.
                  Besten Dank für HILFE!

                  Kommentar


                  • #10
                    Ist die Bedingung
                    Code:
                    autodb.lfdnr=bilderpfad.bildnr
                    denn mal erfüllt?

                    Beim Zugriff auf die Ergebnisse solltest du den Tabellennamen weglassen.
                    $result ['pfad'] statt $result ['bilderpfad.pfad']

                    Schau dir $result mal mit print_r an
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar


                    • #11
                      Hallo erst mal Danke für Deine Antwort.

                      Habe das Script abgeändert.
                      Leider ohne Erfolg.

                      Die SQL Abfrage:


                      SELECT bilderpfad.pfad, autodb.Marke, autodb.Modell, autodb.Kilometer, autodb.Baujahr, autodb.Erstzulassung, autodb.Getriebeart, autodb.Farbe, autodb.Vorbesitzer
                      FROM bilderpfad, autodb
                      WHERE autodb.lfdnr = bilderpfad.bildnr
                      LIMIT 0 , 30

                      läuft und Bedingung " autodb.lfdnr = bilderpfad.bildnr " ist o.k

                      echo '<img src="'.$result ['pfad'].'"><br>';
                      auf
                      print_r ('<img src="'.$result ['pfad'].'"><br>');
                      geändert.

                      Auf Bildschirmausgabe erscheint das bekannte Bild mit der ROTEN KREUZ. Eigentschaften: Größe der Datei :unbekannt nicht im Cache

                      Könntest Du mir weiterhelfen, wäre super.
                      Danke

                      Kommentar


                      • #12
                        Auf Bildschirmausgabe erscheint das bekannte Bild mit der ROTEN KREUZ. Eigentschaften: Größe der Datei :unbekannt nicht im Cache
                        eine ganz dumme frage. liegen die bilder im rgb-format vor?
                        was gibt print_r($result) aus?

                        gruß
                        peter
                        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                        Meine Seite

                        Kommentar


                        • #13
                          Hallo Peter,

                          danke für Deinen Tipp.

                          Bei der print_r('<img src="'.$result ['pfad'].'"><br>');
                          kommt eben das genannte LEERE BILD.

                          Es kommen keine Daten an.
                          Die Bilder liegen im Verzeichnis mit dern Rechten 755 d.h.
                          rwxr-xr-x

                          Weiss nicht woran es liegt.

                          Kommentar


                          • #14
                            Original geschrieben von smarty68
                            Bei der print_r('<img src="'.$result ['pfad'].'"><br>');
                            kommt eben das genannte LEERE BILD.
                            Wie sieht die Ausgabe aus?
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              Hallo smarty68,

                              probier doch mal dies, so in etwa hab ich es bei mir.

                              table bildpfad:


                              Feld: lfdnr Typ: int(5) autoincrement primärschlüssel, da es ja nur ein Datensatz mit diesem einen Bild gibt
                              Feld: id_bild Typ: int(5)
                              Feld: pfad Typ: varchar(30) (hier gibst du deinen relativen Pfad vom script zum Platz des Bildes ein. z.B. '../../bilder/bild1/mercedes1.jpg')

                              Einträge sehen z. B. so aus:

                              lfdnr: 1
                              id_bild: 1
                              pfad: '../../bilder/mercedes/c180_1.jpg'

                              lfdnr: 2
                              id_bild: 1
                              pfad: '../../bilder/mercedes/c180_2.jpg'

                              lfdnr: 3
                              id_bild: 1
                              pfad: '../../bilder/mercedes/c180_3.jpg'

                              lfdnr: 4
                              id_bild: 2
                              pfad: '../../bilder/mercedes/c200_1.jpg'

                              usw...

                              table autodb

                              Feld: marke
                              Feld: modell
                              usw....

                              Feld: id_bild Typ: int(5) (unbedingt gleicher Typ und Feldname wie in der Tabelle bildpfad - erleichtert so manches!)


                              Wenn du z. B. nach einem Mercedes ($marke) in einem Formular suchst, dann sollen die Daten des Mercedes mit dem Bild escheinen.

                              Klammern, Strichpunkte, Anführungszeichen aufpassen, man vergisst da schnell eine.



                              Auswerter-Script:

                              connect();

                              //kannst auch inner join verwenden
                              $sql="SELECT autodb.marke,autodb.modell, usw, bildpfad.id_bild, bildpfad.pfad FROM bildpfad,autodb WHERE autodb.marke='$marke' AND autodb.id_bild=bildpfad.id_bild";

                              $result=mysql_db_query($db,$sql);
                              $max=mysql_num_rows($result);
                              echo $max;

                              echo " Einträge gefunden.";
                              echo "<br />";

                              while ($row=mysql_fetch_array($result)){

                              //echo was auch immer du angezeigt haben willst

                              //hier kommt dein Bild!
                              echo "<img src='$row[pfad]'>";

                              }

                              Sollte es so wider erwarten nicht klappen, dann die sql-Abfrage abwandeln.

                              Kommentar

                              Lädt...
                              X