Werte aus zwei Arrays zu einem Query zusammenfügen

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

  • Werte aus zwei Arrays zu einem Query zusammenfügen

    Hallo,

    ich habe mal wieder ein kleines Problem, von dem ich nicht weiß wie ich es lösen soll. Das Skript ermittelt die Dateinamen aus einem Verzeichnis und speichert die in einem Array. Danach wird eine Ebene tiefer noch der inhalt dieses Verzeichnisses gelesen und in einem weiteren Array abgelegt.


    PHP-Code:
    $bilder "images/fotoalbum/johanna/";
    $sub "thumbs/";
    $dhbilder  opendir($bilder);
    while (
    false !== ($filenamebilder readdir($dhbilder))) 
    {
     if (
    $filenamebilder != "." && $filenamebilder != ".." && $filenamebilder != "thumbs")
     {
      
    $filesbilder[] = $filenamebilder;
     }
    }

    $thumbs "images/fotoalbum/johanna/thumbs";
    $dhthumbs  opendir($thumbs);
    while (
    false !== ($filenamethumbs readdir($dhthumbs))) 
    {
     if (
    $filenamethumbs != "." && $filenamethumbs != "..")
     {
      
    $filesthumbs[] = $filenamethumbs;
     }


    Wie kriege ich es jetzt am besten hin, das jedes Paar, das Bild und das Thumb im Unterverzeichniss, in einem Datensatz stehen. Mit Dateinamen und Pfadangabe.


    Gruß

    Michael
    Gruß

    Michael

  • #2
    Tschuldigung, hatte was übersehen, hat sich erledigt.
    Gruß

    Michael

    Kommentar


    • #3
      Hmmm, ich da doch noch ein Problem. Und zwar die Bilder wieder zur Anzeige zu bringen. Problem ist, das die Seite so aufgebaut ist, das eine Index gibt, in der alles andere includet wird. So auch aller content. somit ist auch der Header gesendet wenn die Bilder aus der DB geholt werden. Mit einem Content-Type="image/jpg" ist also nichts mehr zu machen, er mekert dann auch erwartungsgemäs, das der Header schon gesendet wurde. Gibt es eine andere Möglichkeit, und wenn welche, die Bilder zur Anzeige zu bringen. Die Bilder an sich liegen im Filesystem, in der DB stehen nur die Pfade und Dateinamen drin.


      Danke für eure Hilfe !



      Gruß

      Michael
      Gruß

      Michael

      Kommentar


      • #4
        Wie wär's dann mit einem Content-type: text/html und die Bilder im img-Tag?
        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


        • #5
          Wie versuchst du denn die Bilder anzuzeigen?
          Gruss
          H2O

          Kommentar


          • #6
            PHP-Code:
            <?php
            //Datenbank verbinden
            require_once ($root "/functions/db_connection.php");


            $query "SELECT * FROM bilder";
            $result mysql_query($query);
            if (!
            $result
                 {
                  die(
            'Ungültige Abfrage: ' mysql_error());
                 }
            while(
            $row mysql_fetch_array($result))
            {

             echo 
            "<img>" $row['thumbpfad'] . $row['thumb'] . "</img><br>";

            }
            ?>
            Dummerweise bekomme ich nur den Pfad angezeigt, aber kein Bild.
            Gruß

            Michael

            Kommentar


            • #7
              PHP-Code:
              echo "<img>" $row['thumbpfad'] . $row['thumb'] . "</img><br>"
              und zwar pronto. Schau dazu bei selfhtml.org vorbei und schau dir an wie man Bilder korrekt anzeigt
              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
                Dass man heutzutage nichtmal mehr HTML ansatzweise beherrschen muss, bevor man "große Sachen" programmieren will... *tztztz*
                ICH BIN ICH!!!

                Kommentar


                • #9
                  okok, das war wohl ein Anflug von geistiger Umnachtung was ich da eingegeben habe.

                  @ichbinich, nach schön für dich, das du es so drauf hast.
                  Gruß

                  Michael

                  Kommentar


                  • #10
                    hehe, das war aber wirklich so weit ab vom Schuss, dass man ernsthaft überlegen muss ob du jemals ein Bild eingebunden hast.

                    Und falls du es tatsächlich schon mal geschafft hast, warum hast du dann nicht mal zum Vergleich eine funktionierende Version heran gezogen?

                    *scnr*

                    Kommentar


                    • #11
                      Weil ich dann öfters mal den Wald vor lauter Bäumen nicht sehe. Bin noch am lernen und vor lauter Gedanken machen und tun gehen mir halt mal die einfachen Sachen durch die Lappen.

                      PHP-Code:
                      echo "<img src='" $row['thumbpfad'] . "/" $row['thumb'] . "' alt='Bilder Johanna'>"
                      So funktioniert dann auch die Ausgabe der Bilder. Das Ganze jetzt noch in eine vierspaltige Tabellenform und dann passt das auch vom Aussehen.
                      Gruß

                      Michael

                      Kommentar


                      • #12
                        OffTopic:

                        Würde eigentlich ein Textbrowser wie z.B. Lynx den Pfad innerhalb der Tags als Text anzeigen
                        Falls ja dann könnte man das als noimg-Tag in HTML aufnehmen und bräuchte auch kein alt-Attribut mehr


                        Back topic:
                        Warum speicherst du den Pfad und den Namen als einzelne Spalten in der Datenbank? Speichere einfach nur den ganzen Pfad à la
                        /path/to/pics/img.jpg (spart ein Feld in der DB Wenn du den Dateinamen brauchst hilft dir z.B. basename()
                        Ausserdem solltest du bei einem SELECT die Spalten immer explizit angeben

                        Gruss

                        tobi
                        Zuletzt geändert von jahlives; 29.01.2008, 22:57.
                        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


                        • #13
                          Original geschrieben von jahlives
                          ...bräuchte auch kein alt-Attribut mehr
                          Da hat aber der W3C-Validator etwas dagegen
                          Original geschrieben von fritzje610
                          Das Ganze jetzt noch in eine vierspaltige Tabellenform ...
                          Das ist ja auch kein Problem:
                          PHP-Code:
                          <?php
                          //Datenbank verbinden
                          require_once ($root "/functions/db_connection.php");

                          $mx 4;   // Anzahl pro Zeile
                          $query "SELECT 
                                      thumbpfad, 
                                      thumb 
                                    FROM 
                                      bilder"
                          ;
                          $result mysql_query($query) || die('Ungültige Abfrage: ' mysql_error());
                          echo 
                          "<table border='0'>\n<tr>";   
                          $i 0;   
                          while (
                          $row mysql_fetch_assoc($result)){
                              
                          printf("<td><img src='%s/%s' /></td>"$row['thumbpfad'], $row['thumb']);
                              
                          $i ++;
                              if (
                          $i == $mx){
                                  echo 
                          "</tr><tr>";
                                  
                          $i 0;
                              }
                          }
                          if (
                          $i 0){
                              for(;
                          $i $mx;$i ++){
                                  echo 
                          "<td>&nbsp;</td>";    // Letzte Zeile füllen (geht auch ohne, ist aber sauberer)
                              
                          }
                          }
                          echo 
                          "</tr>\n</table>\n";
                          ?>
                          Gruss
                          H2O

                          Kommentar


                          • #14
                            Hallo,

                            vielen Dank für dein Script. Ich hatte mir zwar gestern noch was zusammengebastelt, was auch funktioniert hat, aber das hier ist doch schicker.
                            Eine Kategorienübersicht mit einer Unterkategorienebene muss ich mir noch basteln, wobei ich da schon mal bisschen gesucht hab eund auch sowas wie einen Ansatz habe.
                            Akut habe ich eher das Problem, wie ich beim Klick auf eines der Thumbs ein popup mache, in dem das Bild
                            a) in voller Größe dargestellt wird und
                            b) ich innerhalb dieses popups vor und zurückblättern kann und jeweils das passende Bild angezeigt wird.
                            Zumindest ist jedes Thumb ein Link, so das beim Klick darauf die Vollansicht angezeigt wird. Allerdings innerhalb der selben Seite, was die Darastellung von allem unschön macht. Deshalb die Vollansicht in ein popup zum durchblättern.
                            Ich hatte auch gestern mal was zu popups gefunden, allerdings mir den Thread nicht gebookmarkt. Seltsamerweise darf ich auch im moment hier im Forum nicht suchen. Warum auch immer ???

                            Wie löse ich das denn jetzt am elegantesten?

                            Gruß

                            Michael



                            Gruß
                            Gruß

                            Michael

                            Kommentar


                            • #15
                              a) in voller Größe dargestellt wird und
                              b) ich innerhalb dieses popups vor und zurückblättern kann und jeweils das passende Bild angezeigt wird.
                              a) Eine eigene Fkt anlegen, die via window.open() ein PopUp öffnet. Dabei muss JS natürlich wissen welches Bild ins PopUp geladen werden soll (kannst du über einen Parameter der Fkt steuern). Dann lädt das JS im PopUp via AJAX die Bildressource und baut sie in den PopUp Code ein.
                              Wobei sich die Frage stellt ob du wirklich ein PopUp willst oder nicht lieber eine neue Seite, die das Bild in voller Grösse darstellt (hätte den Vorteil, dass es auch ohne JS geht). Liesse sich ohne JS auch viel einfacher umsetzen z.B.
                              Code:
                              <a href="bild_gross.php?bild=name.jpg">Bild gross anzeigen</a>
                              b) dies lässt sich mit einer Lösung ohne JS ebenfalls viel einfacher umsetzen. Wenn der User auf den Link klickt, dann weiss PHP anhand des GET Parameters welches Bild angezeigt werden soll. Anhand des Parameters weiss PHP aber auch welches Bild vor resp nach diesem Bild kommt. Dazu gibt PHP einfach zwei Links aus, die als Parameter jeweils den Namen des Vorgängers resp des Nachfolgers haben.

                              Wenn du wirklich eine JS Lösung willst, dann musst du dir Gedanken über die Benamsung der Bilder machen. Am einfachsten ist in diesem Fall eine Bildname mit einem fixen Teil und einer fortlaufenden Nummer z.B. img_5.jpg Mit der Laufnummer weiss JS welches das nächste und welches das vorherige Bild ist ohne einen Request an den Server abzusetzen.
                              Ohne JS habe ich das bei meiner Seite mal umgesetzt.

                              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

                              Lädt...
                              X