Mysql & PHP

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

  • Mysql & PHP

    Hallo leute,

    Seit einigen Tagen beschäftige ich mich mit anruf von blobs aus einer Database. Meine Absicht ist es nicht die Pro und Contra ein solches vorgehen zu diskutieren.
    Es geht mir lediglich um eine lern curve.

    Umgebung: web: Apache server + PhP 4.4.2.mit register_globals = on + mysql 5.0.15
    Umgebung: local: Apache server + PhP 5.1.4.mit register_globals = off
    + mysql 5.0.21.

    Die Tabelle in der Database sieht folgender maBen aus:
    CREATE TABLE `myblobs` (
    `blobNo` smallint(11) NOT NULL auto_increment,
    `blobTitle` varchar(50) default NULL,
    `blobData` longblob,
    `blobType` varchar(50) default NULL,
    PRIMARY KEY (`blobNo`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

    In PhP 5 (local) habe ich ein bischen herum gefumeld. Dieser code soll per Row der inhalt einer Column hervorbringen.
    Code:
    <?
    require ("lokalebrug.php");

    $query=("SELECT * FROM myBlobs");
    $results=mysql_query($query)or die ("could not execute query");
    $nrows=mysql_num_rows($results);
    for($i=0;$i<$nrows;$i++)
    {
    $rows=mysql_fetch_array($results);
    header ("Content-type:$rows[blobType]");
    echo $rows["blobData"],' ',"<br>";
    }
    ?>

    Wenn ich z.B statt header ....und echo..... nur echo $row['blobType'] abfrage, dan erscheint für jeden Eintrag die richte Information. Ich hatte erwartet wenn es um header....echo....geht wie oben erwäht, daB für jeden Eintrag einen Bild gezeigt wurde. Es zeigt nur einen Bild, nämlich der erste Eintrag in der Database.

    Meine Frage:
    Wieso dieses unterschiedliche Resultat?

    TschuB

    Arturo

  • #2
    code-tags bitte.
    du machst doch nichts mit deinem $i in der schleife. es wird immer nur die erste zeile aus dem query-ergebnis ausgewählt.
    blllubb

    Kommentar


    • #3
      Hi Frodenius,

      Deine Antwort versteh ich nicht ganz. Alles was ich daruber gelesen habe deutet daruf hin das es eine erklärung geben sollte wobei für jeden eintrag ein bestimmter Action ausgeführt werden soll.

      Wie ich schon angezeigt habe, so bald es um text geht, wird der Action richtig ausgeführt. Es gibt in der Tafel 3 eintrage, fur jeden von denen wird z.B der richtige Identification hervorgeführt. Wenn es um die raue BLOBDATA handelt, dan läuft der Action auch richtig.

      Nur wenn es um die Kombination: header ....echo geht, gibs nur ein Bild, der erste in der Reihe.

      TschuB

      Arturo

      Kommentar


      • #4
        ok mist... das mit der schleife ist blödsinn.
        aber wenn du den header sendest, lädt der browser dieses objekt, in deinem fall ein bild. und mehr auch nicht.
        blllubb

        Kommentar


        • #5
          Probier mal das:

          PHP-Code:
          $query=("SELECT * FROM myBlobs");
          $results=mysql_query($query) or die ("could not execute query");
          while (
          $row mysql_fetch_assoc($results)) {
             echo 
          $rows['blobData']." <br>";

          Kommentar


          • #6
            Ich hatte erwartet wenn es um header....echo....geht wie oben erwäht, daB für jeden Eintrag einen Bild gezeigt wurde. Es zeigt nur einen Bild, nämlich der erste Eintrag in der Database.
            Und das ist genau was header() macht. Pro header() kann nur eine Ressource angezeigt werden. Also wenn du mehrere Bilder auf einer Seite anzeigen willst ist nix mit header(). Dann machst du doch am besten eine html Output Seite mit <img>
            Nur echo ist auch nix, denn wie kann der Client aus den Binärdaten rauslesen um was es sich handelt ?
            Ob du allerding direkt die Bilddaten im <img> angeben kannst weiss ich ned ggf. musst du die Bilder auf die Platte speichern, damit du einen URL hast.

            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