Inserire immagini in un database

Area dedicata al linguaggio HTML. Nozioni di base,esempi,script,programmazione
Rispondi
Avatar utente
Micogian
Globalmod
Globalmod
Messaggi: 599
Iscritto il: 17/03/2016, 17:53
Link del Forum: https://www.actaplantarum.org

Re: Inserire immagini in un database

Messaggio da Micogian »

Mi sembra a posto, non so se dopo vuoi creare una testata e un piede alla pagina in maniera che ci sia Testata, Corpo, Piede
Nella tabella potresti usare i bordi o per lo meno dividere i records.
potresti mettere un <hr> nel ciclo for, dopo la chiusura della riga </tr> in maniera che i records vengano separati per lo meno da una riga.

Altre 2 cosette: hai messo una larghezza del 100% della tabella, mentre i campi sono rispettivamente 40% e 30%.
Perchè hai messo degli a capo <br> nel ciclo for ? puoi usare il css "margin-top: 30px;" o comunque il valore che desideri per staccare dalla parte superiore.
Avatar utente
eniac
PhpBB Expert
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

Messaggio da eniac »

Si , come dicevo c'è da lavorarci, ma ora sto cercando di capire come fare per inserire il valore in una variabile da immettere per fare una ricerca in base al calibro...

la stringa che ordina i record è questa

Codice: Seleziona tutto

$query = "SELECT * FROM munizioni ORDER by Calibro";
quindi presumo che dovrò usare una sintassi del genere

Codice: Seleziona tutto

$query = "SELECT * FROM munizioni ORDER by $search";
se inserisco il valore a mano nel codice funziona, quindi il mio ragionamento, presumo, sia valido , ora sto cercando di capire come assegnare il valore a tale variabile dall'esterno.

Premetto , sono un autodidatta quindi magari dico corbellerie, però sono uno che non demorde facilmente anche se ci metto un po a capire , quindi abbiate pazienza di sopportarmi e supportarmi nei limiti del possibile, intanto GRAZIE Micogian, da solo non ci sarei arrivato facilmente a questo punto e non è poco per le mie conoscenze.
phpBB version : 3.3.11
php version : 8.2.16
Avatar utente
eniac
PhpBB Expert
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

Messaggio da eniac »

Ho spulciato un po in giro ed ho modificato la tabella facendogli mettere i bordi, ed in effetti è molto meglio cosi, ora il codice è cosi, spero sia giusto, l'unica cosa che non riesco a fare è abbassare un po l'altezza della tabella, dalla foto si capisce meglio cosa intendo

Codice: Seleziona tutto

<table style="with: 50%;" height=20%>
   <tr>     
      
	  
	 <?php
	 for ($x=0; $x < $i; ++$x)
	 {
	 ?>
		<tr>
			<table border="1" bordercolor="black" bordercolorlight="#00CCFF" bordercolordark="#000099">
Cattura.PNG
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
phpBB version : 3.3.11
php version : 8.2.16
Avatar utente
eniac
PhpBB Expert
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

Messaggio da eniac »

Sistemato, ho messo anche un header fisso , adesso è tutto molto più pulito, vediamo un pò ora di fare una form per inserire i dati nel database cosi evito di passare da phpmyadmin...

Codice: Seleziona tutto

<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
		<title>Header fissa</title>
		<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
		<link rel='stylesheet' href='stile.css' type='text/css' media='all' />
		 

		
		<header class="site-header">
		
			<div class="header-fixed">
				<h1>
					<img src="image/logo1.png" </a>
				
				</h1>
				
			</div>

			<div class="header-relative"></div>
			
		</header>

		<div class="site-content">
		
		</div>
		<p><center><strong><font size="5"><font color="blue">Database online del CeSIM</center></font></p>
<?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 = "SELECT * FROM munizioni ORDER by Calibro";
$result = mysqli_query($link, $query);
$i = 0;
while($row=mysqli_fetch_array($result))
{
	$Bossolo[$i]       		=  $row['Bossolo'] ;
	$Calibro[$i]       	=  $row['Calibro'] ;
	$Nazione[$i]      	=  $row['Nazione'] ;
	$Produttore[$i]     =  $row['Produttore'] ;
	$Anno[$i]      		=  $row['Anno'] ;
	$Modello[$i]      		=  $row['Modello'] ;
	$Fondello[$i]     	=  $row['Fondello'] ;
	$Note[$i]     	=  $row['Note'] ;
	$Cartuccia[$i]     	=  $row['Cartuccia'] ;
	
		
		++$i;
}
mysqli_close($link);

?>

</head>
<body>


	 
	 <table style="with: 50%;" >
   <tr>     
      
	  
	 <?php
	 for ($x=0; $x < $i; ++$x)
	 {
	 ?>
	
		<tr>
			<table border="1" bgcolor="#ffffff">
			<td style='width:15%; text-align: center;'>
				<img src='./immagini/<?=$Fondello[$x]?>' width='150' alt='immagine ' >
				<img src='./immagini/<?=$Cartuccia[$x]?>' width='450' alt='immagine ' >
			</td>
			
						<td style='width:35%;'>
			    Calibro = <strong><font color="red"><?=$Calibro[$x]?></font></strong><br><br>
				Nazione = <strong><?=$Nazione[$x]?></strong>&emsp;&emsp;
				Produttore = <strong><?=$Produttore[$x]?></strong><br><br>
				Anno = <strong><?=$Anno[$x]?></strong>&emsp;&emsp;&emsp;
				Modello = <strong><?=$Modello[$x]?></strong>&emsp;&emsp;
				Bossolo = <strong><?=$Bossolo[$x]?></strong></br><br>
				Note = <strong><?=$Note[$x]?></strong>
			</td>
			
		</tr>
		
	<?php
	 }
	 ?>
</table>

</body>
</html



Cattura.PNG
Non hai i permessi necessari per visualizzare i file allegati in questo messaggio.
phpBB version : 3.3.11
php version : 8.2.16
Avatar utente
Micogian
Globalmod
Globalmod
Messaggi: 599
Iscritto il: 17/03/2016, 17:53
Link del Forum: https://www.actaplantarum.org

Re: Inserire immagini in un database

Messaggio da Micogian »

La tabella la vedi ma è sbagliata.
Una tabella è strutturata in questo modo

Codice: Seleziona tutto

<table>
   <tr>
      <td>campo 1 del record 1</td>
      <td>campo 2 del record 1</td>
   </tr>  
      <tr>
      <td>campo 1 del record 2</td>
      <td>campo 2 del record 2</td>
   </tr>   
  </table>     
      
Ora nel tuo codice prima apri il <table> e il <tr> ma poi nel ciclo for ripeti il <table>
Il ciclo for elabora e ripete la stessa operazione fino al raggiungimento del totale dei records selezionati ma il table del ciclo non lo chiudi.
Viene chiuso alla fine del ciclo e questo è giusto.
Praticamente al di fuori del ciclo for devi mettere solamente il -table> iniziale, il -tr> non serve perchè io lo avevo messo solo se volevi fare una riga di legenda per i campi della tabella.
i successivi -<tr> e <td> sono inseriti nel ciclo for dove non devi mettere i <table> perchè è come se tu mettessi una tabella nella tabella.

Praticamente devi fare così:

Codice: Seleziona tutto

<table>
<!-- inizio ciclo for -->
   <tr>
      <td>campo 1 del record x</td>
      <td>campo 2 del record x</td>
   </tr>  
   <!-- fine del ciclo for -->  
 </table>  
Avatar utente
eniac
PhpBB Expert
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

Messaggio da eniac »

Grazie mille , adesso dovrei averci preso, se ho ben capito le tue istruzioni, in effetti è sparita la doppia riga tra le caselle, probabilmente dovuta al ripetuto ciclo..

Codice: Seleziona tutto

<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
		<title>Header fissa</title>
		<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
		<link rel='stylesheet' href='stile.css' type='text/css' media='all' />
		 

	
	
		<header class="site-header">
		
			<div class="header-fixed">
				<h1>
					<img src="image/logo1.png" </a>
				
				</h1>
				
			</div>

			<div class="header-relative"></div>
			
		</header>

		<div class="site-content">
		
		</div>
		<p><center><strong><font size="5"><font color="blue">Database online del CeSIM</center></font></p>
<?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 = "SELECT * FROM munizioni ORDER by Calibro";
$result = mysqli_query($link, $query);
$i = 0;
while($row=mysqli_fetch_array($result))
{
	$Bossolo[$i]       		=  $row['Bossolo'] ;
	$Calibro[$i]       	=  $row['Calibro'] ;
	$Nazione[$i]      	=  $row['Nazione'] ;
	$Produttore[$i]     =  $row['Produttore'] ;
	$Anno[$i]      		=  $row['Anno'] ;
	$Modello[$i]      		=  $row['Modello'] ;
	$Fondello[$i]     	=  $row['Fondello'] ;
	$Note[$i]     	=  $row['Note'] ;
	$Cartuccia[$i]     	=  $row['Cartuccia'] ;
	
		
		++$i;
}
mysqli_close($link);

?>

</head>
<body>


	 
	 <table style="with: 50%;" border="1" bgcolor="#ffffff" 
      
	  	 <?php
	 for ($x=0; $x < $i; ++$x)
	 {
	 ?>
	
		<tr>
			
			<td style='width:15%; text-align: center;'>
				<img src='./immagini/<?=$Fondello[$x]?>' width='150' alt='immagine ' >
				<img src='./immagini/<?=$Cartuccia[$x]?>' width='450' alt='immagine ' >
			</td>
			
						<td style='width:35%;'>
			    Calibro = <strong><font color="red"><?=$Calibro[$x]?></font></strong><br><br>
				Nazione = <strong><?=$Nazione[$x]?></strong>&emsp;&emsp;
				Produttore = <strong><?=$Produttore[$x]?></strong><br><br>
				Anno = <strong><?=$Anno[$x]?></strong>&emsp;&emsp;&emsp;
				Modello = <strong><?=$Modello[$x]?></strong>&emsp;&emsp;
				Bossolo = <strong><?=$Bossolo[$x]?></strong></br><br>
				Note = <strong><?=$Note[$x]?></strong>
			</td>
			
		</tr>
		
	<?php
	 }
	 ?>
</table>

</body>
</html



intanto ho provato ad inserire una sezione per visualizzare solo i record di una dato calibro, sopra avevo messo qualche riga di come penso che dovrebbe andare , gli daresti un'occhiata per vedere se almeno il mio ragionamento è esatto ?
phpBB version : 3.3.11
php version : 8.2.16
Avatar utente
Micogian
Globalmod
Globalmod
Messaggi: 599
Iscritto il: 17/03/2016, 17:53
Link del Forum: https://www.actaplantarum.org

Re: Inserire immagini in un database

Messaggio da Micogian »

Puoi usare il Calibro per selezionare solo i records che hanno quel calibro ma potresti anche aggiungere alla tabella un campo "cat" (categoria).
Poi devi fare un Select per selezionare la Categoria, all'inizio del php, prima della query devi mettere la variabile

Codice: Seleziona tutto

$cod_cor		= $_POST['cod];
// crei una variabile iniziale se $cod_cor è vuota
if($cod_cor == '')
{
   $cod_cor	 = 1;
}
// adesso la query diventa così:
$query = "SELECT * FROM munizioni 
   	WHERE cod = " . $cod_cor . "
   	ORDER by Calibro";
Praticamente se non selezioni una Categoria quella predefinita è "1", se ne selezioni un'altra la query estrarrà i records di quella Categoria.
Puoi farlo anche con il Calibro ma in questo caso devi fare l'elenco di tutti i Calibri che hai nel Database.
Puoi anche aggiungere 2 campi, uno per la categoria (numerico) e uno per la descrizione, li chiamerai
cod_id = codice numerico della Categoria.
cod_des = descrizione della Categoria.
Avatar utente
eniac
PhpBB Expert
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

Messaggio da eniac »

Fammi capire, cosi facendo dovrei assegnare una categoria ad ogni record che inserisco nel database , e poi la query mi restituisce quelli presenti nella categoria ordinati per calibro ?

Se è cosi non va bene per quello che devo fare, ti spiego , la mia idea è cercare un dato valore che corrisponde al calibro , questo perche? se lascio come è adesso la lista, è ordinata si per calibro e va bene , ma prendiamo un esempio pratico, il calibro 8mm...di 8mm ce ne sono migliaia di varianti che fermo restando il calibro vengono identificati dalla lunghezza del bossolo , quindi nella lista ordinata per calibro avrei prima tutti quelli in calibro 8x19 poi quelli in calibro 8x21 poi quelli 8x33... e cosi di seguito per centinaia di varianti , cosi sono costretto a scorrermi tutta la lista fino a che non arrivo a quello che cerco , mentre se faccio una ricerca ad es. su 8x57 arrivo subito dove devo arrivare senza scrollarmi tutti gli altri 8Xxx, non so se ho spiegato bene, al limite mi sarebbe ancora piu di aiuto se potessi cercare ad esempio gli 8x57 del 1933...
phpBB version : 3.3.11
php version : 8.2.16
Avatar utente
Micogian
Globalmod
Globalmod
Messaggi: 599
Iscritto il: 17/03/2016, 17:53
Link del Forum: https://www.actaplantarum.org

Re: Inserire immagini in un database

Messaggio da Micogian »

Puoi anche mantenere la struttura così ma in questo caso l'elenco dei Calibri li devi creare interrogando il database, questo perchè tu non sai quello che c'è nel database e quindi devi avere un elenco di Calibri e poter scegliere tra questi.
Idem per l'anno, nessuno vieta di fare una doppia selezione, una per calibro e una per anno (ad esempio uno o tutti).
Adesso non ho tempo, ti farò un esempio di come si estrae una lista dei Calibri contenuti nella tabella e da questa lista creare una select.
Avatar utente
eniac
PhpBB Expert
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

Messaggio da eniac »

Va bene grazie, non c'è fretta, se hai tempo e voglia ben venga :D:
Per il resto questo lavoro di impostare i vari calibri l'ho già fatto , e so che è una rogna infinita visto il numero, ma credo di poter estrapolare il codice da un sito che ho fatto tempo fa, lo trovi qui se vuoi dargli un'occhiata magari ti rendo conto meglio http://munizioni.altervista.org
L'ho fatto anni fa ed è abbastanza grezzo come realizzazione...ma funziona a dovere.
phpBB version : 3.3.11
php version : 8.2.16
Rispondi