Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] SQL Link als Bild ausgeben

Einklappen

Neue Werbung 2019

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

  • [Erledigt] SQL Link als Bild ausgeben

    Hallo liebe Fachmänner =)

    in der Hoffnung das ihr mir weiter helfen könnte, wollte ich euch bitte mir zu sagen wo ich mein Fehler habe. Vielleicht kennt ihr nütliche Tutorials für mich, die den Aufbau, eintrag von Bilder als Link udn Abfruf von Bildern in einer Tabelle beschreibt. Ich suche seit Tagen vergebens. selbst einfach Scripte scheinen bei mir nicht laufen zu wollen. =(

    Ich habe momentan folgende Tabelle mit manuell eingefügtem Inhalt:

    Code:
    CREATE TABLE IF NOT EXISTS `galerie` (
      `bid` int(20) NOT NULL auto_increment,
      `BName` varchar(30) NOT NULL,
      `BKategorie_ID` int(10) NOT NULL,
      `BBeschreibung` varchar(200) NOT NULL,
      `User_ID` int(10) NOT NULL,
      `BLink` varchar(100) NOT NULL,
      PRIMARY KEY  (`bid`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
    
    --
    -- Daten für Tabelle `galerie`
    --
    
    INSERT INTO `galerie` (`bid`, `BName`, `BKategorie_ID`, `BBeschreibung`, `User_ID`, `BLink`) VALUES
    (1, 'Test', 1, 'testbeschreibung', 1, 'wallpaper.jpg'),
    (2, 'apple', 2, 'geil', 1, 'wallpaper.jpg'),
    (3, 'nice', 3, 'nettes bild', 1, 'wallpaper.jpg');
    Ich möchte zu erst lediglich die Bilder angezeigt bekommen, die im root verzeichnis zu testzwecken kopiert wurden.

    dazu wollte ich folgenden code verwenden:

    PHP-Code:
    <?php
    session_start
    ();
    include 
    'php/connect.inc.php';


    $abfrage "SELECT BLink FROM galerie";
    $ergebnis mysql_query($abfrage);
    while(
    $row mysql_fetch_object($ergebnis))
       {
       echo 
    "$row->BLink <br>";
       echo 
    "<img src=\"" $ergebnis['BLink'] . "\" alt=\"Bildchen\" />";
       }


    ?>
    er gibt zwar den Link mit $row->BLink aus, aber zum Bilder anzeigen kommt er nicht. da ist nur ein blaues Kästchen mit einem Fragezeichen enthalten.

    ich verwenden Safari und arbeite mit der XAMPP (Apache und phpmyadmin).

    Könnt ihr mir weiter helfen?

    Ich danke euch schon vielmals dafür =)

    LG

  • #2
    Wie wäre es, wenn du statt $ergebnis['Blink'] mal $row->Blink nähmest?

    Kommentar


    • #3
      Hallo Manko10, tausend dank für deine schnelle Antwort =) du bist mein neuer Lieblingsprogga!

      Aber leider geht das auch nicht. Ich bekomme dann 3 Kästchenausgaben die aber anscheinend Images sein sollen. Werde d´jedoch nicht angezeigt und der Link zum Bild ist der selbe wie die Seite.

      Liegt es evt daran, dass ich diese Seite includiere?

      Das ist meine Index:

      PHP-Code:
      <?
      session_start();
      ?>
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
      <META HTTP-EQUIV="Content-Type" content="text/html; charset=utf-8">
      <META NAME="Copyright" content="Modern Picture">
      <META HTTP-EQUIV="content-language" content="DE">
      <META NAME="Rating" content="General">
      <META NAME="Designer" content="Ronny Ruhe">
      <META NAME="Keywords" content="Bilder, Fotos, Aktfotos, Familienfotos, Webfotos, Landschaften, entwickeln lassen, bestellen, Termine vereinbaren">
      <META NAME="Abstract" content="Fotohandel Modern Picture ligt ihre Präsenz am Herzen. Wir gestellten ihre Bilder und zeigen Sie von der besten Seite. Machen Sie direkt online einen Termin mit uns.">
      <META NAME="Title" content="Modern Picture">
      <META NAME="revisit-after" content="7">
      <META NAME="Robots" content="index,follow">
      <META NAME="Description" content="Ein moderner Fotohandel das mit dem neusten Wissensstand und der Modernsten Ausrüstung Ihrer Wünsche erfüllt. Schauen Sie herein und erfrischen Sie sich am Talent der Fotografen. Sie haben bestimmte Vorstellungen? kein Problem. Wir setzen Ihre Ideen um und präsentieren ihnen das vollkommene Werk.">
      <META HTTP-EQUIV="Cache-Control" content="no-cache">
      <META HTTP-EQUIV="Expires" content="0">
      <META NAME="Author" content="Ronny Ruhe">
      <title>Modern Picture</title>
      <link href="css/style.css" rel="stylesheet" type="text/css" />
      </head>

      <body class="thrColElsHdr">
      <div id="header">
              <div class="header">
                <p>&nbsp;</p>
              </div>
            <!-- end #header --></div>
          <div id="container">
            <div id="sidebar1">
              <a href="./index.php" title="Hauptverzeichnis"><div class="home"></div></a>
              <a href="?seite=galerie/upload" title="Fotoalbum"><div class="galerie"></div></a>

                      <?php
                   
      if(!session_is_registered('user') || $_SESSION['user'] == "") {
              echo 
      '<a href="?seite=neu" title="Registrieren"><div class="registrieren"></div></a>';
              echo 
      '<a href="?seite=index" title="Login"><div class="anmelden"></div></a>';
                  }
          
                   if(
      session_is_registered('user') || $_SESSION['user'] != "") {
              echo 
      '<a href="?seite=sichere_seite"><div class="profilseite"></div></a>';
              echo 
      '<a href="?seite=termin/neu"><div class="termin"></div></a>';
               }
       
      ?>
                 <a href="?seite=impressum" title="Seiteninhaber"><div class="impressum"></div></a>
               <a href="?seite=kontakt" title="Kontaktformular"><div class="kontakt"></div></a>
               
                               <?php
                   
      if(session_is_registered('user') || $_SESSION['user'] != "") {
              echo 
      '<a href="?seite=logout"><div class="logout"></div></a>';
               }
       
      ?>

                    <!-- end #sidebar1 --></div>
            <div id="mainContent">
                         <?php
                          
      if(empty($_GET['seite']))
                          
      $_GET['seite'] = "main";
                          if(
      file_exists("php/".$_GET['seite'].".php")) {
                          include(
      "php/".$_GET['seite'].".php");
                        } else {
                          include(
      "php/error.php");
                        }
                  
      ?>
              <!-- end #mainContent -->
      </div>
              <!-- Dieses clear-Element sollte direkt auf das #mainContent-div folgen, um das #container-div anzuweisen, alle untergeordneten Floats aufzunehmen. --><br class="clearfloat" />
             <div id="footer">
                        <!-- end #footer -->         
            </div>
      <!-- end #container --></div>
          </body>
      </html>

      Kommentar


      • #4
        Gibt Dir das echo "$row->BLink <br>"; denn den "richtigen" Link vor dem Bild aus?

        Kommentar


        • #5
          Ja genau, echo "$row->BLink"; zeigt mir alle Links an, die in der Tabelle vorhanden sind.
          Deshalb verzweifeln ich auch schon =( ich habs auch schon debugging gemacht aber es werden keine fehler angezeigt.

          Kann es ansich am apache liegen?

          Denn auch wenn ich mit folgendem Slript versuche Bilder hoch zu laden geht es nicht. Safari rödelt nur und kommt nicht ans Ziel.

          PHP-Code:
          <?php
          session_start
          ();
          ?>

          <html>
          <head><title>Bilder abspeichern</title></head>
          <body>

          <?php
          // code that will be executed if the form has been submitted:

          if ($submit) {

              
          // connect to the database
              // (you may have to adjust the hostname,username or password)

              
          MYSQL_CONNECT("localhost","root","");
              
          mysql_select_db("page");

              
          $data addslashes(fread(fopen($form_data"r"), filesize($form_data)));

              
          $result=MYSQL_QUERY("INSERT INTO binary_data (description,bin_data,filename,filesize,filetype) ".
                  
          "VALUES ('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')");

              
          $idmysql_insert_id();
              print 
          "<p>This file has the following Database ID: <b>$id</b>";

              
          MYSQL_CLOSE();

          } else {

              
          // else show the form to submit new data:
          ?>

              <form method="post" action="<?php echo $PHP_SELF?>" enctype="multipart/form-data">
              Bildbeschreibung:<br>
              <input type="text" name="form_description"  size="40">
              <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
              <br>Bild zum hochladen aussuchen:<br>
              <input type="file" name="form_data"  size="40">
              <p><input type="submit" name="submit" value="submit">
              </form>

          <?php

          }

          ?>

          </body>
          </html>
          Das wäre dann aber eine andere Tabelle.

          Kommentar


          • #6
            Ich habs.. das kann doch nicht sein. cih fummel seit ewig rum udn jetzt gehts!!

            Ich hab while($row = mysql_fetch_object($ergebnis) verwendet, dabei muss doch while($row = array($ergebnis) genutzt werde. warum würde ich auch gerne wissen aber so involviert bin ich nicht in php ^^
            auf jeden fall geht es dann mit echo "<img src=\"" . $row['BLink'] . "\" alt=\"Bildchen\" />";

            Aber ich würde gerne noch etwas wissen, das damit zu tun hat. Eventuell sollte ich es abe rins neue thema posten?

            Ich möchte jetzt eine zufalls ausgabe generieren.
            Dabei sollen maximal 9 bilder auf eine seite, ohne sieten wechsel - das ist mir nämlich zu kompliziert. udn dafür mochte ich jedes bild zufällig aus der spalte suchen lassen. ist das möglich?

            LG

            Kommentar


            • #7
              Vollständigkeitshalber wollte ich mir meine Frage selber beantworten =)

              Ich kenn das ja, wenn mans sonst ein Thema liest und nie ein Ergebnis bekommt ^^

              Zufallsausgabe total easy mit ran() bzw ran(now()) wie z.B.
              $abfrage = "SELECT dateiname FROM picture ORDER BY RAND(NOW()) LIMIT 1";

              Tausend dank an alle die mi geholfen haben und es wollten

              LG

              Kommentar


              • #8
                ORDER BY Rand() LIMIT 1 kann bei größeren Datensätzen zum Flaschenhals werden. Bei Bedarf kannst Du Dir ja mal den einen oder anderen Beitrag bei order by rand | MySQL Performance Blog durchlesen.

                Kommentar


                • #9
                  Für soetwas lohnt es sich immer, sich mal den generierten HTML-Quelltext anzusehen (beim Firefox Strg+U). Dann findet man seinen Fehler meist schneller.

                  Kommentar


                  • #10
                    Danke für den Hinweis David =) ich denke ich werde nachträglich mehrere Seiten einbauen, aber erst einmal wollte ich für nur ein paar Bilder pro Kategorien Seite etwas anzeigen lassen. Und damit die Seite nicht überflutet und nicht immer die selben zu sehen sind Zufallsbilder einbauen.

                    Aber mein Upload formular will immer noch nicht so wie ich es will. Ich habe es depugged aber ich bekomme keien Fehler ausgegeben. Safari rödelt immer nur, läd kein Bild ins verzeichnis und die atenbank wird auch nicht gefüllt.

                    Seht ihr woran es liegen könnte?

                    PHP-Code:
                    <?php
                    session_start
                    ();
                    ?>
                    <html> 
                    <head> 
                    <title>upload</title> 
                    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
                    </head> 

                    <body> 
                    <h2>Datei-Upload</h2> 
                    <form  action="?seite=galerie/upload"  
                      method="post" enctype="multipart/form-data"> 
                      Bild hochladen<br> 
                      <input type="hidden" name="MAX_FILE_SIZE" value="90240"> 
                      <input type="file" name="dateiname"> 
                      <hr>
                        <p>Welche Bildkategorie?</p>
                      <p>
                          <input type="radio" name="Zahlmethode" value="3"> Portrait   
                        <input type="radio" name="Zahlmethode" value="2"> Landschaft
                        <input type="radio" name="Zahlmethode" value="3"> Familie
                        <input type="radio" name="Zahlmethode" value="2"> Tiere
                       <input type="radio" name="Zahlmethode" value="1"> Besonderheit
                      </p> 
                      Kommentar zum Bild  <br> 
                      <br> 
                      <textarea name="kommentar" cols="30" rows="5" id="kommentar"></textarea> 
                      <input type="text" name="datum" value="<? echo date("Y-m-d H:i:s")?>"> 
                      <br> 
                      <br> 
                      <input type="hidden" name="abschicken" value="1"> 
                      <input type="submit" value="Übertragen"> 
                    </form> 
                    <hr>  

                    <?php 
                    // Abfrage, ob Formular abgeschickt worden ist 
                    // wenn ja, dann Definition der Upload-Variablen  

                    if (isset($_POST["abschicken"])) { 
                      
                    $dateiname $_FILES['dateiname']['name']; 
                      
                    $tmp_name $_FILES['dateiname']['tmp_name'];
                      
                    $kommentar = isset($_POST['kategorie']) ? $_POST['kategorie'] : ''
                      
                    $kommentar = isset($_POST['kommentar']) ? $_POST['kommentar'] : ''
                      
                    $datum = isset($_POST['datum']) ? $_POST['datum'] : ''
                      if (!isset(
                    $dateiname)) {exit;} 
                       
                      
                    // Definition unterschiedlicher Fehlermeldungen 
                         
                      
                    if(!is_uploaded_file($tmp_name)) { 
                        echo 
                    'Fehler!<br><ul>'
                        switch (
                    $_FILES['dateiname']['error']) { 
                            case 
                    1: echo "<li>Die Datei überschreitet die  
                                    maximale Größe von 2 Megabytes."
                    ;  
                                    break; 
                            case 
                    2: echo "<li>Die Datei überschreitet die  
                                    maximale Größe von 
                    $_POST[MAX_FILE_SIZE] Bytes.";  
                                    break; 
                            case 
                    3: echo "<li>Die Datei wurde nur  
                                    teilweise übertragen."
                    ;  
                                    break; 
                            case 
                    4: echo "<li>Sie haben vergessen,  
                                    die zu überspielende Datei anzugeben."
                    ;  
                                    break; 
                        } 
                        echo 
                    "</li></ul>"
                        exit; 
                      } 
                       
                      
                    // Festlegen des Pfades mit Dateinamen.      
                      
                    $uploadname ="imgage/$dateiname"
                       
                    move_uploaded_file($tmp_name,$uploadname);   
                       
                      
                    // Ausgabe auf dem Bildschirm zur Bestätigung. 
                      
                    printf("Die Datei <b>%s</b> befindet sich auf dem Webserver im Ordner  
                                <b>%s</b>!<br>\n"
                    ,  
                                      
                    $_FILES['dateiname']['name'], $uploadname);  
                      
                    printf("Sie ist <b>%s Bytes</b> groß und vom Typ <b>%s</b>. 
                                <br>\n"
                    $_FILES['dateiname']['size'],  
                                      
                    $_FILES['dateiname']['type']);  
                       
                      
                    // Einfügen eines Datensatzes zum Bild in Datenbank 
                      // Verbindung zur Datenbank 
                         
                        
                    $server "localhost"$user "root"$pass ""
                        
                    $database "page"
                        
                    $verbindung = @mysql_connect($server,$user,$pass
                        or die (
                    "Keine Verbindung möglich"); 
                        
                    mysql_select_db($database$verbindung
                        or die (
                    "SQL-Fehler = ".mysql_error()); 
                         
                        
                    // Einfügen des Datensatzes 
                         
                        
                    $sql "insert into picture (kommentar,dateiname,datum,kategorie)  
                                Values ('
                    $kommentar','$dateiname','$datum','$kategorie')"  
                                
                    or die ("SQL-Fehler = ".mysql_error()); 
                        
                    $rs mysql_query($sql); 
                        
                    mysql_close($verbindung); 

                    ?> 
                    </body> 
                    </html>

                    Kommentar


                    • #11
                      Wie sieht denn die Ausgabe aus? Nur eine weiße Fläche? Könnte es sein, dass diese Zeile zuschlägt?
                      PHP-Code:
                      if (!isset($dateiname)) {exit;} 
                      Hast du auch mal
                      PHP-Code:
                      ini_set('display_errors'1);
                      error_reporting(E_ALL); 
                      versucht?
                      Nimm mal das @ vor dem mysql_connect() weg.

                      Kommentar


                      • #12
                        Guten morgen Manko10 =)

                        Ich habe leider gar keien ausgabe und das Fenster ändert sich nicht. beim Safari ist ständig nur das Java-lade Symbol in der Eingabeleiste zu sehen.

                        Ich habe die Datei jetzt etwas abgeändert.

                        PHP-Code:
                        <?php
                        session_start
                        ();
                        ?>
                        <html> 
                        <head> 
                        <title>upload</title> 
                        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
                        </head> 

                        <body> 
                        <h2>Datei-Upload</h2> 
                        <form  action="?seite=../upload"  
                          method="post" enctype="multipart/form-data"> 
                          Bild hochladen<br> 
                          <input type="hidden" name="MAX_FILE_SIZE" value="90240"> 
                          <input type="file" name="dateiname"> 
                          <hr>
                            <p>Welche Bildkategorie?</p>
                          <p>
                              <input type="radio" name="Zahlmethode" value="3"> Portrait   
                            <input type="radio" name="Zahlmethode" value="2"> Landschaft
                            <input type="radio" name="Zahlmethode" value="3"> Familie
                            <input type="radio" name="Zahlmethode" value="2"> Tiere
                           <input type="radio" name="Zahlmethode" value="1"> Besonderheit
                          </p> 
                          Kommentar zum Bild  <br> 
                          <br> 
                          <textarea name="kommentar" cols="30" rows="5" id="kommentar"></textarea>
                          <br> 
                          <br> 
                          <input type="hidden" name="abschicken" value="1"> 
                          <input type="submit" value="&Uuml;bertragen"> 
                        </form> 
                        <hr>  

                        <?php 
                        // Abfrage, ob Formular abgeschickt worden ist 
                        // wenn ja, dann Definition der Upload-Variablen  

                        if (isset($_POST["abschicken"])) { 
                          
                        $dateiname $_FILES['dateiname']['name']; 
                          
                        $tmp_name $_FILES['dateiname']['tmp_name'];
                          
                        $kommentar = isset($_POST['kategorie']) ? $_POST['kategorie'] : ''
                          
                        $kommentar = isset($_POST['kommentar']) ? $_POST['kommentar'] : '';  
                          if (!isset(
                        $dateiname)) {exit;} 
                           
                          
                        // Definition unterschiedlicher Fehlermeldungen 
                             
                          
                        if(!is_uploaded_file($tmp_name)) { 
                            echo 
                        'Fehler!<br><ul>'
                            switch (
                        $_FILES['dateiname']['error']) { 
                                case 
                        1: echo "<li>Die Datei überschreitet die  
                                        maximale Größe von 2 Megabytes."
                        ;  
                                        break; 
                                case 
                        2: echo "<li>Die Datei überschreitet die  
                                        maximale Größe von 
                        $_POST[MAX_FILE_SIZE] Bytes.";  
                                        break; 
                                case 
                        3: echo "<li>Die Datei wurde nur  
                                        teilweise übertragen."
                        ;  
                                        break; 
                                case 
                        4: echo "<li>Sie haben vergessen,  
                                        die zu überspielende Datei anzugeben."
                        ;  
                                        break; 
                            } 
                            echo 
                        "</li></ul>"
                            exit; 
                          } 
                           
                          
                        // Festlegen des Pfades mit Dateinamen.      
                          
                        $uploadname ="imgage/galerie/$dateiname"
                           
                        move_uploaded_file($tmp_name,$uploadname);   
                           
                          
                        // Ausgabe auf dem Bildschirm zur Bestätigung. 
                          
                        printf("Die Datei <b>%s</b> befindet sich auf dem Webserver im Ordner  
                                    <b>%s</b>!<br>\n"
                        ,  
                                          
                        $_FILES['dateiname']['name'], $uploadname);  
                          
                        printf("Sie ist <b>%s Bytes</b> groß und vom Typ <b>%s</b>. 
                                    <br>\n"
                        $_FILES['dateiname']['size'],  
                                          
                        $_FILES['dateiname']['type']);  
                           
                          
                        // Einfügen eines Datensatzes zum Bild in Datenbank 
                          // Verbindung zur Datenbank 
                             
                        include 'php/connect.inc.php';
                             
                            
                        // Einfügen des Datensatzes 
                             
                            
                        $sql "insert into picture (kommentar,dateiname,kategorie_id)  
                                    Values ('
                        $kommentar','$dateiname','$kategorie')"  
                                    
                        or die ("SQL-Fehler = ".mysql_error()); 
                            
                        $rs mysql_query($sql); 
                            
                        mysql_close($verbindung); 

                        ?> 
                        </body> 
                        </html>
                        Die includierte Datei siehts so aus:

                        PHP-Code:
                         <?php
                         $dbHost 
                        "localhost";
                         
                        $dbUser "root";
                         
                        $dbPass "";
                         
                        $dbName "page";
                         
                        $connect = @mysql_connect($dbHost$dbUser$dbPass);
                         
                        $selectDB = @mysql_select_db($dbName$connect);
                         
                        ?>
                        Und meine Tabelle dazu:

                        Code:
                        CREATE TABLE IF NOT EXISTS `picture` (
                          `pid` int(5) NOT NULL auto_increment,
                          `kommentar` varchar(100) NOT NULL,
                          `dateiname` varchar(50) NOT NULL,
                          `kategorie_id` int(5) NOT NULL default '5',
                          PRIMARY KEY  (`pid`)
                        ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=21 ;
                        Wfür ist denn der
                        PHP-Code:
                        ini_set('display_errors'1);
                        error_reporting(E_ALL); 
                        Befehl. Den setze ich doch an den Anfang des Scripts, um Fehler zu erkennen, oder? Da ist aber kein Fehler aufgetreten.

                        Kommentar

                        Lädt...
                        X