|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Oct 2009
Messaggi: 67
|
[PHP + Mysql]prelevare e visualizzare un'immagine da un DB
Codice PHP:
"http://localhost/prova%20immagini/mostraImg.php" mostraImg.php è il nome del file che eseguo... vi prego, non riesco a capire il perchè, su internet è tutto incasinato!! grazie mille ![]() ![]() ![]()
__________________
- Sei... Il numero perfetto! - Ma non era Tre il numero perfetto? - Si, ma la mia pistola ha sei colpi... [cit:Il Buono...ne "Il Buono, Il Brutto E Il Cattivo"] |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 558
|
fai una SELECT chiedendo il campo codice_immagine e poi cerchi di stampare $tmp['image'] invece di $tmp['codice_immagine'] e quindi ti stampa, ovviamente, una stringa vuota. Cambiando la chiave dell'array dovrebbe funzionare
|
![]() |
![]() |
![]() |
#3 |
Bannato
Iscritto dal: Nov 2002
Città: Roma
Messaggi: 810
|
"mysql_fetch_array" ritorna i campi indicizzati da numeri interi, quindi devi usare echo $tmp[0];
|
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Oct 2009
Messaggi: 67
|
vi ringrazio ragazzi...
ho provato a cambiare l'indice del vettore $temp sia mettendo 0 che mettendo codice_immagine ma non è successo nulla ![]() ![]()
__________________
- Sei... Il numero perfetto! - Ma non era Tre il numero perfetto? - Si, ma la mia pistola ha sei colpi... [cit:Il Buono...ne "Il Buono, Il Brutto E Il Cattivo"] |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Dec 2005
Messaggi: 558
|
Quote:
hai provato a farti stampare il numero di righe che ottieni dalla query? con mysql_num_rows() |
|
![]() |
![]() |
![]() |
#6 | |
Bannato
Iscritto dal: Nov 2002
Città: Roma
Messaggi: 810
|
Quote:
Ad ogni modo avrebbe dovuto funzionare in entrambi i casi, quindi il problema è altrove. |
|
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Oct 2009
Messaggi: 67
|
sisi, risulta 1 come deve essere, ma proprio non capisco perchè mi stampa l'indirizzo in locale del file in php...
![]()
__________________
- Sei... Il numero perfetto! - Ma non era Tre il numero perfetto? - Si, ma la mia pistola ha sei colpi... [cit:Il Buono...ne "Il Buono, Il Brutto E Il Cattivo"] |
![]() |
![]() |
![]() |
#8 |
Bannato
Iscritto dal: Nov 2002
Città: Roma
Messaggi: 810
|
Sei sicuro che non ci siano errori nella richiesta che fai?
Perché in caso di errori l'header è compromesso e non puoi più inviarlo col comando "header". Prova a fare la query a mano con phpMyAdmin o un client mysql, e poi assicurati che la riga dell'header sia esattamente questa (maiuscole/minuscole/spazi esatti): header("Content-type: image/jpeg"); |
![]() |
![]() |
![]() |
#9 |
Member
Iscritto dal: Oct 2009
Messaggi: 67
|
ho provato e riprovato, la query è giusta...
ti posto ancora il codice.. Codice PHP:
__________________
- Sei... Il numero perfetto! - Ma non era Tre il numero perfetto? - Si, ma la mia pistola ha sei colpi... [cit:Il Buono...ne "Il Buono, Il Brutto E Il Cattivo"] |
![]() |
![]() |
![]() |
#10 |
Bannato
Iscritto dal: Nov 2002
Città: Roma
Messaggi: 810
|
Non hai alcun log del programma?
Comunque ti consiglio di usare sempre le versioni "sicure", ad esmpio cambia mysql_select_db($nome_database); in mysql_select_db($nome_database,$connessione); e mysql_query($query); in mysql_query($query,$connessione); Per il resto qualche punto di controllo non farebbe male: $connessione = mysql_connect($host,$nome_utente,$password); if ( $connessione == false ) { echo "Impossibile connettersi al db"; } e cose del genere... |
![]() |
![]() |
![]() |
#11 |
Member
Iscritto dal: Oct 2009
Messaggi: 67
|
tutti i controlli li avevo evitati apposta,davo per scontato che funzionasse...cosa intendi per log, scusa la domanda...XD
__________________
- Sei... Il numero perfetto! - Ma non era Tre il numero perfetto? - Si, ma la mia pistola ha sei colpi... [cit:Il Buono...ne "Il Buono, Il Brutto E Il Cattivo"] |
![]() |
![]() |
![]() |
#12 |
Bannato
Iscritto dal: Nov 2002
Città: Roma
Messaggi: 810
|
I log sono i file di diagnostica prodotti dai servizi per rendicontare ogni cosa che accade, dagli errori all'utilizzo ecc.
Ad ogni modo puoi forzare il PHP a gestire gli errori in un certo modo, inserendo all'inizio del tuo programma queste righe: ini_set("display_errors",1); error_reporting(E_STRICT); (usa E_ALL se non hai PHP 5) ini_set("error_log","errori.txt"); In questo modo ad ogni esecuzione del tuo script potrai trovare in errori.txt tutto quello che è successo, di buono e/o di imprevisto. |
![]() |
![]() |
![]() |
#13 |
Member
Iscritto dal: Oct 2009
Messaggi: 67
|
ho provato...
cmq sembra tutto giusto...segnalo una cosa...tolgo l'header e mi stampa a video una serie di caratteri chiaramenti sarà la codifica in ascii dell'immagine in questione...il database è pieno, il campo è un campo blob... magari è l'header che da problemi... cosa ne pensi? ![]()
__________________
- Sei... Il numero perfetto! - Ma non era Tre il numero perfetto? - Si, ma la mia pistola ha sei colpi... [cit:Il Buono...ne "Il Buono, Il Brutto E Il Cattivo"] |
![]() |
![]() |
![]() |
#14 |
Bannato
Iscritto dal: Nov 2002
Città: Roma
Messaggi: 810
|
Prova a fare questa cosa.
Al posto di: header("Content-type: image/jpeg"); echo $tmp['codice_immagine']; scrivi: file_put_contents("prova.jpg",$tmp['codice_immagine']); Scarica quel file prova.jpg così creato e vedi se è un'immagine valida. Se non lo è la colpa non sta nel tuo codice PHP ma da qualche altra parte. |
![]() |
![]() |
![]() |
#15 |
Member
Iscritto dal: Oct 2009
Messaggi: 67
|
nulla...ma si può???che rabbia, ho provato anche a cancellare tutto il database e a farne uno prova, ma nulla...
tu come fai a scaricare le immagini dal database? oppure, conosci un'altro metodo per scaricarle? ![]() ![]() ![]()
__________________
- Sei... Il numero perfetto! - Ma non era Tre il numero perfetto? - Si, ma la mia pistola ha sei colpi... [cit:Il Buono...ne "Il Buono, Il Brutto E Il Cattivo"] |
![]() |
![]() |
![]() |
#16 |
Bannato
Iscritto dal: Nov 2002
Città: Roma
Messaggi: 810
|
In genere non si mettono mai immagini nei database.
Molto più comodo inserire solo il link all'immagine, che poi vai a pescare in una cartella del webserver. In pratica: Codice:
header("Content-type: image/jpeg"); $db = mysql_connection(...bla,bla,bla...); $res = mysql_query("select nome_file from immagine where chiave= '1'",$db); $row = mysql_fetch_assoc($res); readfile($row['nome_file']); mysql_close($db); |
![]() |
![]() |
![]() |
#17 |
Member
Iscritto dal: Oct 2009
Messaggi: 67
|
a ok capisco, però non si dipende troppo dalla posizione della foto nelle varie cartelle?
__________________
- Sei... Il numero perfetto! - Ma non era Tre il numero perfetto? - Si, ma la mia pistola ha sei colpi... [cit:Il Buono...ne "Il Buono, Il Brutto E Il Cattivo"] |
![]() |
![]() |
![]() |
#18 |
Senior Member
Iscritto dal: Mar 2006
Città: Bergamo
Messaggi: 2499
|
ma l'immagine in che tipo di campo è?
__________________
![]() |
![]() |
![]() |
![]() |
#19 | |
Messaggi: n/a
|
Quote:
Tu basta che memorizzi in un campo ad hoc il nome dell'immagine poi il path assoluto e relativo dellastessa lo memorizzi in una variabile/costante di configurazione. A meno di vincoli imprescindibili è sempre meglio usare il filesystem per memorizzare i file. |
|
![]() |
![]() |
#20 |
Bannato
Iscritto dal: Nov 2002
Città: Roma
Messaggi: 810
|
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:35.