Back to top

Autore Topic: [Risolto] Visualizzare immagini dal database  (Letto 10280 volte)

Offline pulce

  • Appassionato
  • ***
  • Post: 342
  • Sesso: Maschio
    • Mostra profilo
[Risolto] Visualizzare immagini dal database
« il: 14 Ago 2009, 18:47:40 »
Salve a tutti. Spero che qualcuno riesca a rispondermi, anche se in vacanza.
Vengo subito al punto.
Ho creato una nuova tabella all'interno del database di Joomla per un modulo che voglio realizzare. Riesco a visualizzare tutti i dati, ma non so come fare per le immagini.
Nel database ho creato un semplice campo di tipo Text, dove ho messo l'indirizzo dell'immagine da caricare. (Es.images/stories/immagini/mia_immagine.jpg). Ho fatto bene ?  ???
Adesso come faccio per farla visualizzare ?
Quello che riesco ad ottenere a video è la scritta del percorso (cioè images/stories/immagini/mia_immagine.jpg), ma non l'immagine.
Grazie e buone ferragosto  :D
« Ultima modifica: 24 Ago 2009, 11:59:52 da pulce »
Nulla avviene per caso

Offline lumacarom

  • Appassionato
  • ***
  • Post: 218
  • Sesso: Maschio
    • Mostra profilo
Re:Visualizzare immagini dal database
« Risposta #1 il: 14 Ago 2009, 19:17:02 »
Non so qual'è esattamente il layout di pagina in cui dovresti inserire la tua immagine ma concettualmente la cosa dovrebbe essere piuttosto semplice. Se hai il nome del percorso nella banca dati non devi far altro che stampare il percorso stesso all'interno di un tag html per l'inserimento delle immagini. Tipo così:

Codice: [Seleziona]
<?php 
$percorso
="/images/stories/immagini/mia_immagine.jpg"?>

<IMG SRC="<?php echo $percorso?>">

E il problema dovrebbe risolversi.
« Ultima modifica: 14 Ago 2009, 19:19:34 da lumacarom »

Offline pulce

  • Appassionato
  • ***
  • Post: 342
  • Sesso: Maschio
    • Mostra profilo
Re:Visualizzare immagini dal database
« Risposta #2 il: 14 Ago 2009, 22:15:29 »
Grazie mille della risposta.

 Ho provato così:
Codice: [Seleziona]
<?php
defined
'_JEXEC' ) or die( 'Restricted access' ); 
$percorso="/images/stories/immagini/mia_immagine.jpg"?>

<IMG SRC="<?php echo $percorso?>">
Però l'immagine non la carica.

Poi volevo dirti che al posto della
Codice: [Seleziona]
.../mia_immagine.jpg(come mi hai scritto) dovrei mettere il dato preso dalla mia tabella. Infatti l'immagine va messa in maniera dinamica.

Grazie
Nulla avviene per caso

Offline lumacarom

  • Appassionato
  • ***
  • Post: 218
  • Sesso: Maschio
    • Mostra profilo
Re:Visualizzare immagini dal database
« Risposta #3 il: 15 Ago 2009, 08:36:29 »
 ???   E' evidente che se non metti il nome vero dell'immagine l'immagine non viene caricata. Dovresti vedere una crocetta rossa o qualcosa dek genere sullo schermo.
Credo però di aver capito il tuo problema. Correggimi se sbaglio. Tu carichi le immagini normalmente dal back end e vorresti che il percorso ti risultasse in tabella giusto?
Per fare questo dovresti o modificare lo script core che esegue questa operazione oppure, in alternativa scrivere un tuo codice php che insieme agli altri dati in tabella carica anche l'immagine con relativo nome. Ovviamente per fare entrambe le cose bisogna avere molto chiaro cosa vuoi fare di preciso e quali funzionalità vuoi realizzare.

Quello che segue è un frammento di codice che fa esattamente la cosa che ti serve. Però attenzione perchè lo script lavora fuori dal pannello di joomla. Anche se implementa alcune funzionalità che servono ad un joomla e carica le immagini proprio dove serve a te. Comunque credo ti potrà essere d'aiuto per impostare lo script.

Codice: [Seleziona]
$file1= $_FILES["file1"];
$id_file= $_POST["id_file"];
$file1_name= $_FILES["file1"]["name"];
$file1_temp= $HTTP_POST_FILES["file1"]["tmp_name"];
$tipo="immagine";



$db_nome="nomedatabase";
$nometabella = "nometabella";

$connessione = @mysql_connect("localhost", "", "")
or die("Impossibile stabilire una connessione con la banca dati");

$db = @mysql_select_db($db_nome, $connessione)
or die("Impossibile selezionare il database");


$sql = "
SELECT id
FROM $nometabella
";

$risultato = @mysql_query($sql, $connessione)
or die("Impossibile eseguire l'interrogazione");

while ($riga = mysql_fetch_array($risultato)) {

$identificativo=$riga['id'];

if ($id_file==$identificativo){

?>

<H2 align="center">L'identificativo assegnato al documento è già presente nella banca dati. <BR>Devi aggiornare la pagina contenente il form!</H2>
<?
exit;}
}

@mkdir("/home/uy96mg2v/domains/istitutocinodapistoia.it/public_html/images/stories/img_$id_file", 0755)
or die("directory non creata");

@copy("$file1_temp", "/home/uy96mg2v/domains/istitutocinodapistoia.it/public_html/images/stories/img_$id_file/$file1_name")
or die ("Impossibile trasferire il file");

$sql= "
INSERT INTO $nometabella
(id, pass, tipo, filename)
VALUES
(\"$id_file\", \"$password\", \"$tipo\", \"$file1_name\")
";

$risultato = @mysql_query($sql, $connessione)
or die("Impossibile eseguire l'interrogazione");

if ($risultato) {




?>

<H2 align="center">OK! <BR>I dati sono stati trasferiti con successo</H2><BR><BR><H3 align="center">Ricorda che il nome di destinazione della sottocartella contenente l'immagine è:<BR><BR><B>img_<? echo($id_file);
?></B></H3><?
}

else{

?>

<H2 align="center">Spiacente! <BR>Non è stato possibile aggiornare la banca dati</H2>

<?
}
?>


Ciao ciao.
« Ultima modifica: 15 Ago 2009, 08:39:21 da lumacarom »

Offline pulce

  • Appassionato
  • ***
  • Post: 342
  • Sesso: Maschio
    • Mostra profilo
Re:Visualizzare immagini dal database
« Risposta #4 il: 17 Ago 2009, 07:37:31 »
???   E' evidente che se non metti il nome vero dell'immagine l'immagine non viene caricata. Dovresti vedere una crocetta rossa o qualcosa dek genere sullo schermo.
Grazie per il prezioso aiuto.
Per questa prima domanda: si, metto il nome dell'immagine che mi serve (avevo fatto questa prova, anche se non serve al mio scopo), ma non son riuscito a vedere neppure la crocetta.
Citazione
Credo però di aver capito il tuo problema. Correggimi se sbaglio. Tu carichi le immagini normalmente dal back end e vorresti che il percorso ti risultasse in tabella giusto?
Si è giusto. Hai intuito bene, è questo che m'interessa.
Citazione
Per fare questo dovresti o modificare lo script core che esegue questa operazione oppure, in alternativa scrivere un tuo codice php che insieme agli altri dati in tabella carica anche l'immagine con relativo nome.
Perfetto. Vorrei appunto uno script che facesse questo lavoro.

Citazione
Codice: [Seleziona]
$file1= $_FILES["file1"];
$id_file= $_POST["id_file"];
$file1_name= $_FILES["file1"]["name"];
$file1_temp= $HTTP_POST_FILES["file1"]["tmp_name"];
$tipo="immagine";

Ciao ciao.
Ops! Sono confuso. Mi spieghi questa parte, così per sapere come usarla ? Dopo mi sembra più chiaro il codice.
Grazie sei stato gentilissimo, ciao
Nulla avviene per caso

Offline lumacarom

  • Appassionato
  • ***
  • Post: 218
  • Sesso: Maschio
    • Mostra profilo
Re:Visualizzare immagini dal database
« Risposta #5 il: 17 Ago 2009, 19:24:34 »
Codice: [Seleziona]
$file1= $_FILES["file1"];
$id_file= $_POST["id_file"];
$file1_name= $_FILES["file1"]["name"];
$file1_temp= $HTTP_POST_FILES["file1"]["tmp_name"];
$tipo="immagine";

Questa parte di codice serve semplicemente a passare alla pagina le variabili che sonofunzionali alla gestione del file trasferito. Naturalmente gli indici associativi degli array provengono dal nome dei campi contenuti nel form della pagina precedente. In particolare $file1_name= $_FILES["file1"]["name"]; è un array associativo doppio che serve a memorizzare il nome file. Nella parte successiva di codice dovresti poter vedere l'uso che se ne fa.
Se in rete trovi un tutorial per il trasferimento dei file in php forse ti chiarisci anche meglio le idee.

PS Quello che segue è il codice html che genra il form di trasferimento del file. Probabilmente mettendolo insieme al codice sopra riesci ad orientarti un po' meglio.

Codice: [Seleziona]
<FORM NAME="dati" METHOD="post" ENCTYPE="multipart/form-data">
<TR><TD bgcolor="#d5ee66"><FONT size="+1"><B>File (.jpg - .gif - .png)</B></FONT><BR><BR></TD><TD align="right" bgcolor="#d5ee66">
     
<p><strong><BR>Cerca il file da trasferire:</strong></p>
<p><INPUT TYPE="file" NAME="file1" SIZE="30"></p>


<INPUT TYPE="hidden" NAME="id_file" VALUE=<?=$max?>>     
      </TD>
    </TR>
       
<TR>
      <TD align="center" valign="middle" bgcolor="#d5ee66"></TD>
      <TD align="right" valign="top" bgcolor="#d5ee66">
<BR><INPUT TYPE="button" NAME="invio" VALUE="Trasferisci dati" OnClick="invia(document.dati.file1.value)">

</TD>
    </TR>
     </TBODY>
</TABLE>
   
</CENTER>
</FORM>
« Ultima modifica: 18 Ago 2009, 07:37:15 da lumacarom »

Offline pulce

  • Appassionato
  • ***
  • Post: 342
  • Sesso: Maschio
    • Mostra profilo
Re:Visualizzare immagini dal database
« Risposta #6 il: 20 Ago 2009, 07:33:42 »

Se in rete trovi un tutorial per il trasferimento dei file in php forse ti chiarisci anche meglio le idee.

In questi giorni sono in vacanza. Intanto vorrei capire meglio il tuo script. Non riesco a trovare in rete qualcosa che mi illumini come mi consigliavi. Cioè trovo tanti tutorial sul php, ma non su l'esempio specifico.
Sai indicarmene ?

Grazie per l'infinita pazienza
« Ultima modifica: 20 Ago 2009, 10:24:24 da pulce »
Nulla avviene per caso

Offline lumacarom

  • Appassionato
  • ***
  • Post: 218
  • Sesso: Maschio
    • Mostra profilo
Re:Visualizzare immagini dal database
« Risposta #7 il: 20 Ago 2009, 16:11:27 »
Prova QUI.

Mi parrebbe abbastanza illuminante.

Anche QUESTO non è male.

Ciao
« Ultima modifica: 20 Ago 2009, 16:17:33 da lumacarom »

Offline pulce

  • Appassionato
  • ***
  • Post: 342
  • Sesso: Maschio
    • Mostra profilo
Re:Visualizzare immagini dal database
« Risposta #8 il: 20 Ago 2009, 20:42:11 »
Sei un grande. Sto guardando i tuoi link e mi sembrano interessanti.
Ho pensato anche di postare il codice che fatto, per farmi aiutare ad integrare il tuo codice. (Forse era meglio se lo mettevo prima.)
Codice: [Seleziona]
<?

// no direct access
defined( '_JEXEC' ) or die( 'Restricted access' );


 
 $db =& JFactory::getDBO(); 
 $sql = "SELECT * FROM `jos_calendario` WHERE mese=month(now()) and giorno=day(now())"; 



// Query per recuperare il file
 $db->setQuery($sql);


 
 $rows = $db->loadObjectList(); 
 echo"<table style='font-size: 9px;'>"; 
 if(count($rows)) { 
   foreach($rows as $r) { 
     $link="<div style='text-align: left;'><a href='$r->url' target='_blank'>$r->valore</a>";


 
 echo "<tr><td>".$r->giorno."</td>";
 
 echo "<td>".$r->mese."</td>";

 echo "<td>"; 
   
 echo $link."</td></tr>";
  echo"</table>"; 
 
// Immagine   
 

 echo"<table>";
 echo "<tr><td>".$r->immagine;
 echo "</td>";
 
 echo "</tr>";

 
     }   
 } 
 
if ($r != '') {} else {echo "Oggi non ci sono valori inseriti<br/><br/>";}

   echo"</table>";


?>

Come vedi il mio semplice script recupera da una tabella, dei valori corrispondenti al giorno odierno. Funziona, fino al parte dell'immagine, come già sai.
Adesso dovrei completarlo con quello che mi hai mandato. Ti scoccia guidarmi ancora e mostrarmi come fare. Grazie tante

Nulla avviene per caso

Offline lumacarom

  • Appassionato
  • ***
  • Post: 218
  • Sesso: Maschio
    • Mostra profilo
Re:Visualizzare immagini dal database
« Risposta #9 il: 21 Ago 2009, 16:58:25 »
Scrivere lo script per il caricamento delle immagini diventa una cosa complicatissima da farsi così a pezzi e bocconi. Prova a scaricarti il componente area docenti da questa pagina e scorrendo un po' fra le pagine dovresti trovare quello che fa al caso tuo.

Ma nel campo immagine cosa c'è attualmente?

Offline pulce

  • Appassionato
  • ***
  • Post: 342
  • Sesso: Maschio
    • Mostra profilo
Re:Visualizzare immagini dal database
« Risposta #10 il: 23 Ago 2009, 17:17:30 »
Grazie per l'infinita pazienza.
In questi giorni, come potrai immaginare, sono poco presente, perchè in vacanza.

Grazie anche di avermi chiesto cosa c'è nel campo immagine, perchè non sono sicuro che possa andar bene. Nella mia tabella ho messo l'indirizzo dove si trova l'immagine da scaricare, cioè images/stories/immagini/mia_immagine.jpg

Non sapendo come fare, avevo pensato che quella era strada giusta, ma forse sbaglio. Ripartiamo da qui. La mia immagine si trova nella cartella immagini di Joomla, in un suo classico percorso.

Quando interrogo il database ed estraggo i dati, invece dell'immagine, mi viene visualizzato il percorso (quello che ho evidenziato in giallo). Questo significa che legge bene il dato, ma non riesce ad interpretarlo correttamente.

Spero che tutto questo possa esserti chiaro per aiutarmi meglio ...
Nulla avviene per caso

Offline lumacarom

  • Appassionato
  • ***
  • Post: 218
  • Sesso: Maschio
    • Mostra profilo
Re:Visualizzare immagini dal database
« Risposta #11 il: 24 Ago 2009, 07:25:03 »
Sì ma se l'immagine (mia_immagine.jpg) si trova nella directori indicata e il risultato dell'interrogazione lo metti così:

Codice: [Seleziona]
<?php
$percorso
$r->immagine?>


/* Ovviamente l'interrogazione non è completa così ma è solo per capire il resto lo conosci tu */

<IMG SRC="<?php echo $percorso?>">

L'immagine dovresti vederla eccome.

Il nome mia_immagine.jpg ovviamente è il nome vero!
« Ultima modifica: 24 Ago 2009, 07:30:08 da lumacarom »

Offline pulce

  • Appassionato
  • ***
  • Post: 342
  • Sesso: Maschio
    • Mostra profilo
Re:Visualizzare immagini dal database [Risolto]
« Risposta #12 il: 24 Ago 2009, 11:59:07 »
Eureka ...  :D

Funziona. Eppure me lo avevi detto anche all'inizio e non mi andava. Allora ho riprovato e ho visto che scrivevo il percorso così: /images/stories/immagini/mia_immagine.jpg  mentre invece non ci vuole il primo "/". Una banalità. Bastava togliere quello e andava tutto.
Ovviamente funziona anche il codice che mi hai messo nel tuo ultimo post che è quello che cercavo.

Grazie veramente lumacarom, senza il tuo aiuto e la tua pazienza non ci sarei mai arrivato.
« Ultima modifica: 24 Ago 2009, 12:03:29 da pulce »
Nulla avviene per caso

Offline lumacarom

  • Appassionato
  • ***
  • Post: 218
  • Sesso: Maschio
    • Mostra profilo
Re:[Risolto] Visualizzare immagini dal database
« Risposta #13 il: 24 Ago 2009, 16:42:17 »
 ;)   Bene! Felice di esserti stato di aiuto.

Ciao ciao.

 



Web Design Bolzano Kreatif