Inserire immagini in un database
- eniac
- PhpBB Expert
- Messaggi: 778
- Iscritto il: 18/07/2013, 19:14
- Link del Forum: Http://www.cesimmunizioni.eu/forum
- Località: Abruzzo
- Contatta:
Inserire immagini in un database
Visto che non trovo un'area adatta ho deciso di postare qui, se ho sbagliato o se sono offtopic su questo forum prego gli amministratori di non farsi scrupoli ed eliminare il post.
Vediamo se potete aiutarmi, sto facendo un portale per il mio forum , ed avrei deciso di inserirci una pagina con un database, quindi sono andato su phpmyadmin, ho creato il database ed una tabella con dentro i 10 campi di cui avrei bisogno, tre di questi campi contengono foto, il resto sono tutti campi numerici o di testo . Ora il mio problema riguarda le foto , avevo pensato di inserirle nel database usando BLOB ma poi leggendo in giro vedo che è sconsigliato da tutti per il fatto che il database diventerebbe troppo "pesante" e quindi difficile da gestire , continuando a leggere vedo che è possibile inserire le foto in una cartella e inserire nelle relative tabelle il nome ed il path delle foto relative al record , ovviando cosi di far diventare il database stesso troppo grande, le letture che ho però partono tutte dal presupposto che il lettore abbia discreta manovrabilità di database mysql che purtroppo io non ho ancora acquisito, ora il mio problema è capire come definire questi campi con le immagini, ad esempio immagino di dover impostare il "TIPO" in varchar ma non so che lunghezza/valori dargli , inoltre non ho capito dove andare ad inserire nome e path delle foto , non so se sono stato abbastanza chiaro, qualcuno riesce a darmi qualche input a riguardo ?
Vediamo se potete aiutarmi, sto facendo un portale per il mio forum , ed avrei deciso di inserirci una pagina con un database, quindi sono andato su phpmyadmin, ho creato il database ed una tabella con dentro i 10 campi di cui avrei bisogno, tre di questi campi contengono foto, il resto sono tutti campi numerici o di testo . Ora il mio problema riguarda le foto , avevo pensato di inserirle nel database usando BLOB ma poi leggendo in giro vedo che è sconsigliato da tutti per il fatto che il database diventerebbe troppo "pesante" e quindi difficile da gestire , continuando a leggere vedo che è possibile inserire le foto in una cartella e inserire nelle relative tabelle il nome ed il path delle foto relative al record , ovviando cosi di far diventare il database stesso troppo grande, le letture che ho però partono tutte dal presupposto che il lettore abbia discreta manovrabilità di database mysql che purtroppo io non ho ancora acquisito, ora il mio problema è capire come definire questi campi con le immagini, ad esempio immagino di dover impostare il "TIPO" in varchar ma non so che lunghezza/valori dargli , inoltre non ho capito dove andare ad inserire nome e path delle foto , non so se sono stato abbastanza chiaro, qualcuno riesce a darmi qualche input a riguardo ?
phpBB version : 3.3.11
php version : 8.2.16
php version : 8.2.16
- Micogian
- Globalmod
- Messaggi: 599
- Iscritto il: 17/03/2016, 17:53
- Link del Forum: https://www.actaplantarum.org
Re: Inserire immagini in un database
Le immagini le puoi mettere in una cartella, nel database ci metti il nome del file se le immagini sono tutte inserite nella stessa cartella, se sono in cartelle diverse si puoi mettere il percorso.
Il problema è un altro, chi carica le immagini ? Perchè dovresti anche stabilire una dimensione standard, sia in pixel che in Kb.
Si tratta poi di creare una query che seleziona le immagini da visualizzare.
Una soluzione potrebbe essere che visualizzi le immagini ridotte che si possono ingrandire cliccandoci sopra. potresti usare Highslide che è free su siti non commerciali.
Un esempio potrebbe essere quello che io uso nel sito di Acta Plantarum per la Galleria della Fauna, ma non solo. https://www.actaplantarum.org/galleria_ ... allery.php
Anche nel mio sito personale utilizzo immagini che illustrano i miei viaggi, https://www.giannidose.altervista.org/gallery.php?aid=3
Prova a dare un'occhiata al sito di http://highslide.com/, ci sono degli esempi per creare degli Albums.
Il problema è un altro, chi carica le immagini ? Perchè dovresti anche stabilire una dimensione standard, sia in pixel che in Kb.
Si tratta poi di creare una query che seleziona le immagini da visualizzare.
Una soluzione potrebbe essere che visualizzi le immagini ridotte che si possono ingrandire cliccandoci sopra. potresti usare Highslide che è free su siti non commerciali.
Un esempio potrebbe essere quello che io uso nel sito di Acta Plantarum per la Galleria della Fauna, ma non solo. https://www.actaplantarum.org/galleria_ ... allery.php
Anche nel mio sito personale utilizzo immagini che illustrano i miei viaggi, https://www.giannidose.altervista.org/gallery.php?aid=3
Prova a dare un'occhiata al sito di http://highslide.com/, ci sono degli esempi per creare degli Albums.
- eniac
- PhpBB Expert
- Messaggi: 778
- Iscritto il: 18/07/2013, 19:14
- Link del Forum: Http://www.cesimmunizioni.eu/forum
- Località: Abruzzo
- Contatta:
Re: Inserire immagini in un database
Grazie mille per la risposta Sono intanto riuscito a configurare il database ed ho inserito 2 record di prova, spero di aver fatto bene, ti metto uno screen se vuoi dargli un'occhiata e dirmi se va bene, il problema ora è che non riesco a far andare lo script per far visualizzare i dati estratti dalla tabella,
mi restituisce sempre un errore e non ne vengo fuori...penserò dopo a sistemare il tutto come si deve in una pagina, per ora vado per gradi.
Codice: Seleziona tutto
<?php
$DBhost = "localhost";
$DBuser = "root";
$DBpass = "";
$DBName = "archivio";
/* specifichiamo il nome della nostra tabella */
$table = "munizioni";
/* Connettiamoci al database */
mysqli_connect($DBhost,$DBuser,$DBpass) or die("Impossibile collegarsi al server");
@mysqli_select_db("$DBName") or die("Impossibile connettersi al database $DBName");
$query = mysqli_query("SELECT * FROM munizioni");
while($cicle=mysqli_fetch_array($query)){
echo "
<tr>
<td>".$cicle['N.r']."</td>
<td> - </td>
<td>".$cicle['Calibro']."</td>
<td> - </td>
<td>".$cicle['nazione']."</td>
<td> - </td>
<td>".$cicle['produttore']."</td>
<td> - </td>
<td>".$cicle['anno']."</td>
<td> - </td>
<td>".$cicle['tipo']."</td>
<td> - </td>
<td>".$cicle['fondello']."</td>
<td> - </td>
<td>".$cicle['cartuccia']."</td>
</tr>";
}
?>
</table>
mi restituisce sempre un errore
Codice: Seleziona tutto
Fatal error: Uncaught ArgumentCountError: mysqli_select_db() expects exactly 2 arguments, 1 given in C:\xampp\htdocs\web\indice.php:12 Stack trace: #0 C:\xampp\htdocs\web\indice.php(12): mysqli_select_db('archivio') #1 {main} thrown in C:\xampp\htdocs\web\indice.php on line 12
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
phpBB version : 3.3.11
php version : 8.2.16
php version : 8.2.16
- Micogian
- Globalmod
- Messaggi: 599
- Iscritto il: 17/03/2016, 17:53
- Link del Forum: https://www.actaplantarum.org
Re: Inserire immagini in un database
Prova così:
Codice: Seleziona tutto
<?php
$DBhost = "localhost";
$DBuser = "root";
$DBpass = "";
$DBName = "archivio";
/* specifichiamo il nome della nostra tabella */
$table = "munizioni";
/* Connettiamoci al database */
$link = mysqli_init();
if (!$link) exit('<p>Impossibile connettersi al server del database in questo momento.</p>');
if (!mysqli_real_connect($link, $DBhost,$DBuser,$DBpass)) exit('<p>Impossibile connettersi al server del database in questo momento.</p>');
mysqli_select_db($link, $DBName);
$result = mysqli_query($link, "SET NAMES 'utf8'");
if (!$result) exit('<p>error performing query</p>');
// Query
$query = mysqli_query("SELECT * FROM munizioni");
while($cicle=mysqli_fetch_array($query)){
echo "<table>
<tr>
<td>".$cicle['N.r']."</td>
<td> - </td>
<td>".$cicle['Calibro']."</td>
<td> - </td>
<td>".$cicle['nazione']."</td>
<td> - </td>
<td>".$cicle['produttore']."</td>
<td> - </td>
<td>".$cicle['anno']."</td>
<td> - </td>
<td>".$cicle['tipo']."</td>
<td> - </td>
<td>".$cicle['fondello']."</td>
<td> - </td>
<td>".$cicle['cartuccia']."</td>
</tr>";
}
echo "</table>";
mysqli_close($link);
?>
- eniac
- PhpBB Expert
- Messaggi: 778
- Iscritto il: 18/07/2013, 19:14
- Link del Forum: Http://www.cesimmunizioni.eu/forum
- Località: Abruzzo
- Contatta:
Re: Inserire immagini in un database
Superato lo scoglio di connettersi al database, un pochetto va avanti , ma poi mi da questo errore..
In verità per evitare tutto questo sbattimento avevo cercato qualcosa online di bello e pronto, ho trovato basebear che è esattamente rispondente a quello che devo fare...purtroppo i prezzi sono improponibili e la versione free offre poco di spazio e gestione utenti, mica conosci qualcosa di analogo che sia un po' più di manica larga ?
Codice: Seleziona tutto
Fatal error: Uncaught ArgumentCountError: mysqli_query() expects at least 2 arguments, 1 given in C:\xampp\htdocs\web\indice.php:21 Stack trace: #0 C:\xampp\htdocs\web\indice.php(21): mysqli_query('SELECT * FROM m...') #1 {main} thrown in C:\xampp\htdocs\web\indice.php on line 21
phpBB version : 3.3.11
php version : 8.2.16
php version : 8.2.16
- Micogian
- Globalmod
- Messaggi: 599
- Iscritto il: 17/03/2016, 17:53
- Link del Forum: https://www.actaplantarum.org
Re: Inserire immagini in un database
Ma hai provato con il mio codice ?
Non saprei indicarti niente, io ho sempre usato php e html. Ho sempre trovato ottime guide su html.it
Ma io prima estrarrei i dati e poi, nel body farei la tabella utilizzando le variabili ricavate dalla query.
Non saprei indicarti niente, io ho sempre usato php e html. Ho sempre trovato ottime guide su html.it
Ma io prima estrarrei i dati e poi, nel body farei la tabella utilizzando le variabili ricavate dalla query.
- eniac
- PhpBB Expert
- Messaggi: 778
- Iscritto il: 18/07/2013, 19:14
- Link del Forum: Http://www.cesimmunizioni.eu/forum
- Località: Abruzzo
- Contatta:
Re: Inserire immagini in un database
Si, quello che ho indicato è esattamente il risultato del codice che hai gentilmente postato più sopra...
phpBB version : 3.3.11
php version : 8.2.16
php version : 8.2.16
- Micogian
- Globalmod
- Messaggi: 599
- Iscritto il: 17/03/2016, 17:53
- Link del Forum: https://www.actaplantarum.org
Re: Inserire immagini in un database
Scusa, ho sbagliato io, non avevo guardato la query, avevo visto solo la connessione.
la query va fatta così:
Se funziona poi commenti la riga "echo" e usi le variabili nel table che farai nel body.
la query va fatta così:
Codice: Seleziona tutto
$query = mysqli_query("SELECT * FROM munizioni");
$result = mysqli_query($link, $query);
$i = 0;
while($row=mysqli_fetch_array($result))
{
$Nr[$i] = $row['Calibro'] ;
$nazione[$i] = $row['nazione'] ;
$produttore[$i] = $row['produttore'] ;
$anno[$i] = $row['anno'] ;
$tipo[$i] = $row['tipo'] ;
$nazione[$i] = $row['fondello'] ;
$nazione[$i] = $row['cartuccia'] ;
echo "Risultati= " . $Nr[$i] . " - " . $Calibro[$i] . " - " . $nazione[$i] . " - " . $produttore[$i] . " - " . $anno[$i] . "<br>";
++$i
}
mysqli_close($link);
- eniac
- PhpBB Expert
- Messaggi: 778
- Iscritto il: 18/07/2013, 19:14
- Link del Forum: Http://www.cesimmunizioni.eu/forum
- Località: Abruzzo
- Contatta:
Re: Inserire immagini in un database
purtroppo mi da ancora errore
per sicurezza metto tutto il file qua sotto...non vorrei aver sbagliato ad attaccare i due codici
Qui sopra non appare ma ho corretto un po nell'ultima parte che riguarda le variabili
Codice: Seleziona tutto
Parse error: syntax error, unexpected token "}" in C:\xampp\htdocs\web\new.php on line 35
Codice: Seleziona tutto
<?php
$DBhost = "localhost";
$DBuser = "root";
$DBpass = "";
$DBName = "archivio";
/* specifichiamo il nome della nostra tabella */
$table = "munizioni";
/* Connettiamoci al database */
$link = mysqli_init();
if (!$link) exit('<p>Impossibile connettersi al server del database in questo momento.</p>');
if (!mysqli_real_connect($link, $DBhost,$DBuser,$DBpass)) exit('<p>Impossibile connettersi al server del database in questo momento.</p>');
mysqli_select_db($link, $DBName);
$result = mysqli_query($link, "SET NAMES 'utf8'");
if (!$result) exit('<p>error performing query</p>');
// Query
$query = mysqli_query("SELECT * FROM munizioni");
$result = mysqli_query($link, $query);
$i = 0;
while($row=mysqli_fetch_array($result))
{
$Nr[$i] = $row['Calibro'] ;
$nazione[$i] = $row['nazione'] ;
$produttore[$i] = $row['produttore'] ;
$anno[$i] = $row['anno'] ;
$tipo[$i] = $row['tipo'] ;
$nazione[$i] = $row['fondello'] ;
$nazione[$i] = $row['cartuccia'] ;
echo "Risultati= " . $Nr[$i] . " - " . $Calibro[$i] . " - " . $nazione[$i] . " - " . $produttore[$i] . " - " . $anno[$i] . "<br>";
++$i
}
mysqli_close($link);
?>
Codice: Seleziona tutto
$Nr[$i] = $row['N.r'] ;
$nazione[$i] = $row['nazione'] ;
$produttore[$i] = $row['produttore'] ;
$anno[$i] = $row['anno'] ;
$tipo[$i] = $row['tipo'] ;
$fondello[$i] = $row['fondello'] ;
$cartuccia[$i] = $row['cartuccia'] ;
phpBB version : 3.3.11
php version : 8.2.16
php version : 8.2.16
- Micogian
- Globalmod
- Messaggi: 599
- Iscritto il: 17/03/2016, 17:53
- Link del Forum: https://www.actaplantarum.org
Re: Inserire immagini in un database
Qual'è la riga 35 ?
Avevo fatto copia-incolla e non avevo sostituito i nomi delle variabili. E' che il codice io non l'ho provato ma mi sembra corretto.
Commenta la query e vedi se la connessione funziona.
Avevo fatto copia-incolla e non avevo sostituito i nomi delle variabili. E' che il codice io non l'ho provato ma mi sembra corretto.
Commenta la query e vedi se la connessione funziona.
Codice: Seleziona tutto
<?php
$DBhost = "localhost";
$DBuser = "root";
$DBpass = "";
$DBName = "archivio";
/* specifichiamo il nome della nostra tabella */
$table = "munizioni";
/* Connettiamoci al database */
$link = mysqli_init();
if (!$link) exit('<p>Impossibile connettersi al server del database in questo momento.</p>');
if (!mysqli_real_connect($link, $DBhost,$DBuser,$DBpass)) exit('<p>Impossibile connettersi al server del database in questo momento.</p>');
mysqli_select_db($link, $DBName);
$result = mysqli_query($link, "SET NAMES 'utf8'");
if (!$result) exit('<p>error performing query</p>');
/*
// Query
$query = mysqli_query("SELECT * FROM munizioni");
$result = mysqli_query($link, $query);
$i = 0;
while($row=mysqli_fetch_array($result))
{
$Nr[$i] = $row['Calibro'] ;
$nazione[$i] = $row['nazione'] ;
$produttore[$i] = $row['produttore'] ;
$anno[$i] = $row['anno'] ;
$tipo[$i] = $row['tipo'] ;
$fondello[$i] = $row['fondello'] ;
$cartuccia[$i] = $row['cartuccia'] ;
echo "Risultati= " . $Nr[$i] . " - " . $Calibro[$i] . " - " . $nazione[$i] . " - " . $produttore[$i] . " - " . $anno[$i] . "<br>";
++$i
}
mysqli_close($link);
*/
?>