Visualizzazione dei risultati da 1 a 9 su 9

Discussione: immagine da MySQL

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    282

    immagine da MySQL

    ciao a tutti,
    in una tabella MySQL ho un campo blob ('de_img') contenente un'immagine.
    leggo regolarmente i dati dalla tabella e li visualizzo correttamente escluso per l'immagine (mi mostra tutto il codice esadecimale.... )
    le istruzioni che uso sono le seguenti:

    [img]<?php echo $row_Recordset1['de_img']; ?>[/img]

    uso Dreamweaver MX 6.1

    dove sbaglio? come posso fare?
    grazie

  2. #2

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    282
    ciao,
    innanzitutto grazie per essere intervenuto.
    l'articolo che mi hai indicato lo avevo già letto (ho fatto mille prove prima di 'rompere'...).
    e funziona se applicato alle mie tabelle. il problema è che mi mostra l'immagine solo se è un echo subito dopo l'header. se cerco di formattare la pagina inserendo la foto in una tabella insieme ad altri dati non la mostra più.
    non sò se mi sono spiegata.

    ti posto un pò di codice per farti capire cosa succede:

    <?php require_once('archivio.php'); ?>
    <?php
    $colname_Recordset1 = "1";
    if (isset($HTTP_GET_VARS['immagine'])) {
    $colname_Recordset1 = (get_magic_quotes_gpc()) ? $HTTP_GET_VARS['immagine'] : addslashes($HTTP_GET_VARS['immagine']);
    }
    mysql_select_db($database_archivio, $archivio);
    $query_Recordset1 = sprintf("SELECT De_pro, De_epi, De_dtm, de_dtn, de_lun, de_lum, de_img, tipo_file, dati_file FROM immagini WHERE De_pro = '%s'", $colname_Recordset1);
    $Recordset1 = mysql_query($query_Recordset1, $archivio) or die(mysql_error());
    $row_Recordset1 = mysql_fetch_assoc($Recordset1);
    $totalRows_Recordset1 = mysql_num_rows($Recordset1);
    //
    // se l'istruzione header la inserisco quì e subito faccio un echo allora vedo l'immagine
    // ma se voglio mostrarla in una pagina formattata come faccio più avanti non si vede

    //
    header('Content-Type: image/pjpeg');
    echo $row_Recordset1['de_img'];
    //
    //
    //
    ?>
    <html>
    <head>
    <title>Documento senza titolo</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link href="file:stile.css" rel="stylesheet" type="text/css">
    </head>

    <body>
    <table width="98%" border="0" align="center" cellpadding="2" cellspacing="2">
    <tr>
    <td colspan="6"></td>
    </tr>
    <tr>
    <td colspan="6"><p align="center">
    //
    // questo è il punto in cui vorrei mostrare l'immagine ma non si vede nulla (ovviamente levando l'echo... che ho messo prima
    //
    [img]<?php echo $row_Recordset1['De_img']; ?>[/img]
    //
    //
    //
    </p>
    </td>
    </tr>
    <tr>
    <td></td>
    <td colspan="4"><div align="center"><font size="+1"><?php echo $row_Recordset1['De_epi']; ?></font></div></td>
    <td></td>
    </tr>
    <tr>
    <td colspan="3"><div align="center"><?php echo $row_Recordset1['de_lun']; ?> <?php echo $row_Recordset1['de_dtn']; ?></div></td>
    <td colspan="3"><div align="center"><?php echo $row_Recordset1['de_lum']; ?> <?php echo $row_Recordset1['De_dtm']; ?></div></td>
    </tr>
    </table>
    </body>
    </html>
    <?php
    mysql_free_result($Recordset1);
    ?>

    come posso fare? dove sbaglio?
    mi puoi aiutare?
    grazie

  4. #4
    Utente di HTML.it L'avatar di zakros
    Registrato dal
    Oct 2000
    Messaggi
    509
    Il problema è che gli header vanno messi primi di qualsiasi istruzione di output, potresti risolvere il problema bufferizzando la pagina

    http://it2.php.net/manual/it/function.ob-start.php

    vedi anche

    http://it2.php.net/manual/it/function.header.php

    Ciao

  5. #5
    Stai facendo un errore di fondo. I tag img di una pagina HTML non contengono l'immagine vera e propria ma un link al relativo file sul server. E' il borwser che raccoglie tutti i link alle immagini presenti nei tag img, scarica le immagini e le visualizza nelle posizioni opportune. Pertanto se vuoi che in una pagina html siano presenti diverse immagini prese da DB devi aggiungere dei tag img che puntino ad un ulteriore file php di tipo mostra.php?id=123. Questo si occuperà di estrarre l'immagine da DB (la numero 123) e di inviarla al browser che saprà dove inserirla.


  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    282
    quindi, se ho capito bene, dovrei sostituire l'istruzione:
    [img]<?php echo $row_Recordset1['De_img']; ?>[/img]
    con
    [img].... quì dentro la chiamata ad uno script tipo mostra.php?id=123...[/img]
    e questo script mi restituisce l'immagine.
    ma come si fà questa chiamata?
    e poi, questo script dovrebbe quindi avere solo la lettura del record, l'istruzione header e l'echo dell'immagine?


    P.S.
    scusami se ti faccio perdere un pò di tempo, ma a parte risolvere il problema mi piace capire.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    282
    ci sono riuscita!!!!!!!!!!!!!!
    ho creato uno script 'visualizza.php' con il quale ricerco il record e lo stampo.
    nella pagina che devo visualizzare ho fatto così:
    [img]visualizza.php?id=<?php echo $row_Recordset1['De_img']; ?>[/img]
    sembra funzionare...
    grazie ancora per l'aiuto.

    chiara

  8. #8

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    282
    ciao.
    dopo un pò di prove ho verificato che lo script non sempre funziona...
    lo script l'ho chiamato: 'mostra_img.php' e lo richiamo quando mi serve.
    funziona tranne che in un caso.
    nelle pagine contenenti un form (aggiornamento del record interessato). in questo caso l'immagine non compare.
    l'istruzione che uso è:
    [img]mostra_img.php?codice=<?php echo $row_Recordset1['De_pro']; ?>[/img]
    ed è la stessa che uso quando accedo solo per visualizzare la pagina.
    dove sbaglio?
    forse c'entra il fatto che nella sezione
    <head> ho l'istruzione

    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    e il content non è testo? o almeno non solo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.