visualizzare immagine con 2 tabelle differenti

Ricc

Nuovo Utente
4 Nov 2014
5
0
0
Salve allo staff di questo interessantissimo forum,
da neofita del PHP stavo iniziando a costruire un Guestbook ma mi sono impantanato su 2 problemi che per le mie capacità credo siano irrisolvibili senza un aiuto; in sintesi il primo:

nella pagina per inserire i dati ho tutti i campi del form funzionanti (nome, email, indirizzo web, nazionalità ... , messaggio). Ho 2 tabelle nel DB, la prima è ordinata secondo il campo "data-ora" (now), per ricevere tutti i dati e postarli formattati nella pagina dei messaggi, la seconda la uso invece nella pagina dei dati, ha solo 2 campi (ID e nazione) ed è per selezionare il nome del paese di provenienza (appunto dal campo "nazionalità").
Sto pensando a vari modi per realizzare un risultato: in pratica ho una cartella con le immagini delle bandiere dei vari paesi, e vorrei che in ogni messaggio, a fianco al nome della nazione si visualizzasse anche la bandiera corrispondente.
Ho provato aggiungendo campi blob, campi url per selezionarle direttamente dalla cartella sul server, scambiandole tra le 2 tabelle, usando l'ID di entrambe, usando funzioni, insomma è possibile che magari mi ci sia avvicinato o sia in alto mare (essendo in php è difficile scoprirlo), ma per ora nessuna strada ha funzionato. Prima di arrendermi vorrei chiedere un consiglio per sapere A-se si può fare (ma son sicuro di sì) e B-qual è la procedura corretta.

Riguardo il secondo problema: prima del form per i dati ho un form per l'inserimento di un'immagine, che funziona perfettamente; l'immagine viene scaricata nella sua cartella web; anche qui, l'obiettivo sarebbe quello di far apparire l'immagine nel messaggio di chi la carica; ma non ho idea di come fare; ho provato anche qui ad inserire dei campi "nome file" , "tipo file" per caricarne i dati sulla stessa tabella dei messaggi; peraltro non so perché se inserisco il campo blob per caricare l'immagine direttamente nel DB (altra strada che stavo provando) mi azzera il campo "data-ora" per cui mi sballa l'ordine di arrivo dei messaggi.
Quindi ho provato vari modi per far comparire l'immagine dalla cartella al messaggio corrispondente, ma anche qui mi rendo conto di non poter risolvere da solo.

Mi scuso per l'eventuale lungaggine, ed appunto non avendo le competenze necessarie, può darsi che anche uno solo dei 2 problemi (o entrambi) sia magari anche molto semplice da risolvere.
Ringrazio anticipatamente per qualunque aiuto.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
intanto la prima domanda
come è la prima tabella?
se nella tabella hai id, nome,....,nazionalita,.... ti convine fare le bandierine col nome della nazionalità es.
italia.gif
inghilterra.gif
francia.gig
ecc.....
poi quando visualizzi i dati del db
PHP:
<?php
//.........
$query=mysql_query("SELECT * FROM tabella");//+se serve WHERE e/o ORDER BY
while ($riga=mysql_fetch_array($query)){
	echo $riga['nome']."<br />";
	//e gli altri dati
	//e costruisci il nome dell'immagine
    $nazione=$riga['nazionalità']."gif";//se in una cartella $nazione="cartella/".$riga['nazionalità']."gif";
	echo "<img src=\"$nazione\">";//visualizzi la bandierina
	//.....
}
//.....
?>
non ti serve il campo tipo blob
 

Ricc

Nuovo Utente
4 Nov 2014
5
0
0
Salve,
ti ringrazio molto per l'indicazione; alla fine come altre volte succede, quanto più ci si intestardisce a provare varie strade, tanto più non ci si rende conto che la soluzione era davanti agli occhi; ho cercato un modo per inserire automaticamente il campo "iso" (la sigla di ogni stato) poiché avevo le immagini salvate così, ma poi ho preferito perdere un'ora a rinominarle tutte, ed adottare il tuo suggerimento.

Se per qualunque motivo qualche anima pia mi voglia aiutare con il secondo problema gliene sarei molto grato; lo riporto qui per evitare di rileggere il primo messaggio:

in sintesi, prima del form per i dati ho un form per l'inserimento di un'immagine, che funziona perfettamente; l'immagine viene scaricata nella sua cartella web; anche qui, l'obiettivo sarebbe quello di recuperarla e farla apparire nel rispettivo messaggio di chi la carica; ma non ho trovato la soluzione.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
se l'immagine è unica per ogni messaggio ti conviene aggiungere alla tabella un campo che contiene il nome del file caricato e quando estrai il messaggio estrai anche il nome e lo mostri come detto prima
se invece per ogni messaggio l'utente può caricare più immagini (uno a molti) ti conviene fare un'altra tabella del tipo
id
id_messaggio (questo lega il nome delle immagini al suo messaggio)
nome_file

piccolo appunto: ricorda che quando fai caricare dei file è essenziale il controllo di cosa viene caricato, es pinco.jpg ammesso, pinco.exe proibito
 

Ricc

Nuovo Utente
4 Nov 2014
5
0
0
Salve, si alla fine stavo utilizzando la stessa strada per le bandiere e funzionava, ma il problema è appunto il collegare il nome alla stringa contenente tutti i dati. Essendo 2 form separati (non so se si possano "unire" o se ne possa fare solo uno, ma da quello che tutto quello che ho letto, per caricare le immagini serve un form a parte ed i form non si possono nidificare);

il risultato è che l'immagine viene correttamente caricata (con i debiti controlli) ma nella tabella dei messaggi mi inserisce una riga con tutti i campi vuoti tranne il campo con il nome dell'immagine; e se poi continuo compilando gli altri campi, mi genera un'altra riga, con tutti i campi meno quello. Quindi per quel motivo non riesco a visualizzarla nel messaggio corrispondente. Il percorso che mi suggerivi, di creare un'altra tabella e collegarla a quella dei messaggi tramite il loro ID è corretto ma appunto non so come mettere in pratica la teoria.
Non ho ancora trovato ben spiegato il meccanismo di "Join" tra più tabelle, e non saprei come inserire l'ID corrispondente al messaggio (che si troverebbe nella tabella "messaggi"), nel campo id_messaggio della tabella "immagini" relativo al caricamento del nome dell'immagine.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
perche dici che ti servono due form?
HTML:
<form name="form1" method="post" action="dove_vuoi.php" enctype="multipart/form-data">
scrivi il tuo nome
    <input name="nome" type="text" id="nome"><br />
<!-- e tutti gli altri campi di input che ti servono-->
inserisci ummagine
    <input type="file"  name="immagine"><br />
    <input name="invia" type="submit" id="invia" value="invia">
</form>
l'importante è che, quando devi caricare i file, che ci sia l'attributo enctype="multipart/form-data"
 

Ricc

Nuovo Utente
4 Nov 2014
5
0
0
Salve, grazie per l'aiuto, avevo letto che fosse necessario un form a parte (per questioni di session_start) ma evidentemente era un'informazione sbagliata; ho seguito la procedura come hai suggerito, unendo i 2 codici per tutti i controlli, e con le debite modifiche ha funzionato perfettamente. Spero di poter contare ancora sul vostro validissimo appoggio.
Un saluto.
 
Discussioni simili
Autore Titolo Forum Risposte Data
K Visualizzare l'immagine con il numero più alto PHP 0
Y Come caricare e visualizzare un'immagine PHP 0
felino [Javascript] [jQuery] Slick Carousel: visualizzare una porzione dell'immagine successiva Javascript 0
Creatt Visualizzare un immagine al mopmento di un messaggio di alert Javascript 7
M [risolto] visualizzare immagine PHP 4
M visualizzare una immagine Javascript 6
M visualizzare una immagine dopo essere sarta cliccata PHP 0
P Visualizzare immagine in base al risultato PHP 8
C Visualizzare un'immagine diversa a seconda di giorno ed ora Javascript 1
A Visualizzare Un Immagine Dopo Un Evento PHP 4
ElfoDelBasket Visualizzare un immagine a caso PHP 4
I visualizzare lista utenti registrati PHP 1
N php problemi a visualizzare video PHP 3
P come posso visualizzare l'nvr online IP Cam e Videosorveglianza 1
K Visualizzare del html responsive in una Webview Sviluppo app per Android 0
M Visualizzare ultima data registrata MS Access 2
G Numero zero null non deve visualizzare nulla PHP 0
D visualizzare solo foto filtrate jQuery 1
M Visualizzare nuove domande in base a risposta precedente PHP 0
N Non Autorizzato. Dovresti rimuovere il parametro customize_messenger_channel per visualizzare l'anteprima in frontend. WordPress 1
M visualizzare ip cam in windows IP Cam e Videosorveglianza 0
W visualizzare solo file html e sottocartelle di una cartella PHP 1
napuleone visualizzare il codice senza usare gli & HTML e CSS 1
M Visualizzare file PDF con link preso dal DB PHP 0
Alex_70 Visualizzare 2 bandiere PHP 6
Alex_70 Visualizzare anteprima foto in dropdown PHP 2
L Visualizzare tabella all'interno finestra modal PHP 4
P Visual Studio VB.NET Visualizzare un messaggio alla scadenza. .NET Framework 0
J [PHP] Visualizzare risultato query stessa pagina PHP 3
B visualizzare una sola riga Database 3
Alex_70 [PHP] Visualizzare foto tramite select PHP 0
K [ASP] Visualizzare nome del file selezionato Classic ASP 3
M [PHP] Visualizzare un array partendo dal numero 1 e non 0 PHP 5
L [PHP] Visualizzare utente dopo login PHP 0
L [PHP] Visualizzare se una pagina è pingata PHP 1
M [PHP] Visualizzare nell'alert il calcolo PHP 4
D [WordPress] come fare per estrarre dati da un db MySQL tramite una form e visualizzare il risultato WordPress 0
L come visualizzare array di oggetti php PHP 9
S [PHP] visualizzare commento su un prodotto precedentemente selezionato PHP 2
V [Javascript] Visualizzare o nascondere div figlio Javascript 4
W [PHP] Visualizzare errori su Statements in MySQLi PHP 3
S [javascript] visualizzare/nascondere div Javascript 3
W [Javascript] Visualizzare l'href di un link nascosto Javascript 0
L [HTML] Problemi a visualizzare le modifiche eseguite alle pagine del sito. HTML e CSS 2
G [HTML] Visualizzare iframe in un blog non funziona sempre xchė? HTML e CSS 3
tritabit [HTML] Visualizzare stelle tipo rating HTML e CSS 5
A Visualizzare div quando le immagini sono state uploadate con successo (Ajax) Ajax 0
T Visualizzare un Xml su un sito in modo semplice XML 1
F Visualizzare data in formato gg/mm/aaaa da database mysql. PHP 3
M [PHP] Visualizzare record nel db PHP 2

Discussioni simili