- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Mysql img upload: BLOB o URL all'immagine?
-
Mysql img upload: BLOB o URL all'immagine?
Ciao ragazzi,
mi rivolgo a chi ha più esperienza di me in merito, altrimenti rischio di trascorrere intere notti su un progetto senza venirne a capo.Sto creando un CMS per un sito portfolio, dove ho creato un form che carica i dati testuali (un titolo e una descrizione, niente di più) e l'upload di un'immagine in un database, e li stampa correttamente su html.
in questo modo, ogni riga della mia tabella corrisponde a un post; dal punto di vista organizzativo, rimane tutto molto ordinato.
Fino a qua nessun problema: ottengo la mia pagina html con i miei post correttamente suddivisi; la struttura del post è la seguente:
titolo, descrizione, immagine.
Il problema sorge nel momento del caricamento multiplo di immagini.
La stampa dell'immagine nell html avviene tramite questo script:if($_GET['id'] == "") header("Location: index.php"); include('connect.php'); $query = "SELECT img,img2 FROM post WHERE id = " . $_GET["id"]; $risultato = mysql_query($query) or die("Query non valida: " . mysql_error()); $tmp = mysql_fetch_array($risultato); header("Content-Type: " . $tmp["tipo"]); echo $tmp["img"]; echo $tmp["img2"];
nel campo img e img2 sono presenti effettivamente due immagini diverse, ma viene stampata sempre la prima, perchè entrambe hanno lo stesso ID, risiedendo nella stessa riga.
detto questo, ho due domande da porvi:
1: come far apparire due o più immagini diverse con questo metodo
2: conviene caricare le immagini direttamente nel database, oppure nel database occorre soltanto linkarle a url esterne? in questo caso, è comunque possibile suddividere le immagini in cartelle, cui nome viene preso dal titolo del post?Spero di essere stato chiaro,
grazie della disponibilità.
-
@lurex89 said:
[...]
**1: come far apparire due o più immagini diverse con questo metodo
**Non puoi fare un *echo *di entrambe le immagini, devi inserire nel tuo HTML due tag <img>, una per ogni immagini che vuoi mostrare.
Non so come si chiama il tuo script per mostrare le immagini ma devi fare qualcosa tipo:
[HTML]<img src="script-mostra-immagini.php?id=id&immagine=1" />
<img src="script-mostra-immagini.php?id=id&immagine=2" />[/HTML]
e ad esempio a seconda del parametro che passi ($_GET['immagine'] in questo caso) scegli quale immagine prendere e mostrare dal database con un
[PHP]$query = "SELECT " . ( $_GET['immagine'] == 2 ? 'img2' : 'img' ) . " FROM post WHERE id = " . mysql_real_escape_string($_GET["id"]);[/PHP]
@lurex89 said:** 2: conviene caricare le immagini direttamente nel database, oppure nel database occorre soltanto linkarle a url esterne? in questo caso, è comunque possibile suddividere le immagini in cartelle, cui nome viene preso dal titolo del post?**
Dal punto di vista delle performance il tema è molto dibattuto: c'è chi dice che è più efficiente mettere solo la URL nel database ma i vantaggi in termini di velocità sono molto ridotti. Usa il metodo che meglio si adatta al design del tuo sistema e con cui ti trovi meglio.
HTH, ciao!