Inserire immagini in un database

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

Re: Inserire immagini in un database

Messaggio da Micogian »

Ma nel sito che mi hai linkato è più o meno come dicevo io. Quelle che io chiamavo "Categorie" potrebbero benissimo essere i gruppi di Calibro, fino a 6 mm, da 6 a 10,99 mm, e così via. Se nel database fossero suddivisi in queste categorie si potrebbe selezionare tutti i Calibri di quella categoria.
Ma se hai fatto tu quella pagina potresti trovare spunti dal codice e dal database che avevi usato per Altervista.
Avatar utente
eniac
PhpBB Expert
PhpBB Expert
Messaggi: 762
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 »

infatti prendo spunto da quello, ma prima devo risolvere un altro problema, non riesco a trovare una routine che mi faccia scrivere nel database, non sono ancora pratico quindi mi baso su quello che trovo in rete, ne ho provate parecchie ma non ce n'è una che mi funzioni , penso sia un problema di accesso al database , ho usato la stessa routine che uso per leggerlo ma neanche cosi riesco, sicuramente mi perdo qualcosa per strada.
questa è la parte di codice che mi hai sistemato per accedere al database

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>');
per provare ad inserire ho provato questa

Codice: Seleziona tutto

<html>

<head>
<title>PAGINA CARICAMENTO DATI</title>
</head>

<body>
<table border="0">
  <tr>
    <td align="center">Inserisci i dati richiesti</td>
  </tr>
  <tr>
    <td>
      <table>
        <form method="post" action="input.php">
        <tr>
          <td>Nome</td>
          <td><input type="text" name="Calibro" size="20">
          </td>
        </tr>
        <tr>
          <td>Indirizzo</td>
          <td><input type="text" name="Nazione" size="40">
          </td>
        </tr>
        <tr>
          <td></td>
          <td align="right"><input type="submit" 
          name="submit" value="Sent"></td>
        </tr>
        </table>
      </td>
    </tr>
</table>
</body>
</html>

Codice: Seleziona tutto

<?
//la stringa mysql_connect deve essere compilata con i dati relativi al proprio database
// HOST = IP server Mysql
// USER = Nome utente databse
// PASSWORD = Password utente databse

$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>');

// recupero i valori si NOME e INDIRIZZO e li assegno alle variabili $name e $address
$Calibro = $_POST['Calibro'];
$Nazione = $_POST['Nazione'];


//inserting data order
$toinsert = "INSERT INTO munizioni
			(Calibro, Nazione)
			VALUES
			('$Calibro',
			'$Nazione')";

//declare in the order variable
$result = mysql_query($toinsert);	//order executes
if($result){
	echo("<br>Inserimento avvenuto correttamente");
} else{
	echo("<br>Inserimento non eseguito");
}
ma non ne vuole proprio sapere :(
phpBB version : 3.3.11
php version : 8.2.16
Avatar utente
eniac
PhpBB Expert
PhpBB Expert
Messaggi: 762
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 dimenticato una cosa...quel sito che hai visto l'ho fatto diversi anni fa, e non usa il database e neanche una variabile, è tutto html ,prima solo quello un pochetto conoscevo, inoltre anche usando dei gruppi per il calibro non risolverei il problema , se hai dato una scorsa hai menù avrai visto, ad esempio che da 6 a 10mm i calibri sono moltissimi, conta che ogni calibro ha una media di qualche centinaio di cartucce , solo di 8x57 ad es.ne ho censite circa 400 , ora capirai che anche un report in quel range di valori ( 6-10mm) implica una lista lunga parecchie decine di pagine quindi è necessaria una ricerca selettiva per un solo valore di calibro.

ora se , quando hai tempo e voglia, mi spieghi come devo costruire una query che mi restituisca il report di solo i campi di calibro ad es. 7x77 il gioco è fatto.
phpBB version : 3.3.11
php version : 8.2.16
Avatar utente
Micogian
Globalmod
Globalmod
Messaggi: 591
Iscritto il: 17/03/2016, 17:53
Link del Forum: https://www.actaplantarum.org

Re: Inserire immagini in un database

Messaggio da Micogian »

Ma la separazione in Categorie dovrebbe servire proprio a ridurre l'elenco dei Calibri. Non devi visualizzare tutti calibri della selezione ma un solo calibro.
La Categoria dovrebbe servire a ridurre il numero dei Calibri da inserire nel modulo SELECT. Nel Modulo selezioni un Calibro e nella tabella visualizzi solo quel Calibro. Le categorie dovrebbero servire a ridurre il numero dei calibri da visualizzare nella Lista.
Un'alta soluzione potrebbe essere che invece di visualizzare un Select da scorrere per la selezione, potresti creare una lista dei Calibri della Categoria selezionata e cliccando su un Calibro si visualizza la tabella con foto e dati solo di quel calibro.
Una cosa del genere, ovviamente da adattare alle tue esigenze https://www.actaplantarum.org/schede/schede.php

Per il modulo di inserimento ci devo guardare, certamente i tuoi esempi non funzionano perchè se hai PHP 7 devi usare "mysqli" e non "mysql".
Avatar utente
eniac
PhpBB Expert
PhpBB Expert
Messaggi: 762
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 »

Mi sa che non mi sono spiegato bene, allora quello che voglio ottenere è una form per la ricerca senza usare menu selettivi come quello del precedente sito, mi basta una casella vuota dove scrivo il calibro es 20x138 ed ho un report di solo quel calibro , quello che avevo pensato ma non so se è fattibili è prendere il valore inserito nella casella trasformato in una variabile e far fare la ricerca alla query in base a quella variale...

Per quanto riguarda invece il modulo di inserimento nel database avevo dato per scontato che se funziona per la lettura dovrebbe funzionare anche per la scrittura, quindi ne desumo che non è un problema di connessione al database ma di codice che dovrebbe poi passare i dati al database ? A questo ci avevo pensato che potesse essere la versione quindi ho lavorato anche su un database che ho in altervista con php 5 ma anche li non funziona...
phpBB version : 3.3.11
php version : 8.2.16
Avatar utente
eniac
PhpBB Expert
PhpBB Expert
Messaggi: 762
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 »

Bene, leggendo e studiando ho risolto la prima parte , bastava usare WHERE , adesso la ricerca funziona perfettamente :clapi: :clapi:

Codice: Seleziona tutto

//  Query


$query = "SELECT * FROM munizioni  WHERE Calibro='20x138'";
ora assegnando il valore che sto cercando ad una variabile e passandola alla query ho risolto il problema

Codice: Seleziona tutto

//  Query


$query = "SELECT * FROM munizioni  WHERE Calibro='$sel'";
phpBB version : 3.3.11
php version : 8.2.16
Avatar utente
Micogian
Globalmod
Globalmod
Messaggi: 591
Iscritto il: 17/03/2016, 17:53
Link del Forum: https://www.actaplantarum.org

Re: Inserire immagini in un database

Messaggio da Micogian »

Si può fare tutto ma di solito si preferisce la selezione di un valore sicuramente presente nel database, non l'inserimento libero che potrebbe non trovare niente. E dato che i calibri sono tanti secondo me la soluzione migliore è suddividerli in gruppi, ma questa è una mia opinione.

Per il PHP vai con calma, quando abbiamo creato Acta Plantarum era il 2007 e non conoscevo assolutamente niente di HTML e di PHP, Con applicazione e tanta testardaggine qualcosa ho imparato.
Avatar utente
eniac
PhpBB Expert
PhpBB Expert
Messaggi: 762
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 »

Adesso resta la seconda parte, capire dove sbaglio per inserire i dati nel database... fatto questo direi che sono apposto e posso passare alla finitura, magari se hai qualche suggerimento da darmi è ben accetto, intanto ti ringrazio per avermi supportato fino ad ora, il tuo è stato un aiuto prezioso :clapi: :clapi:
phpBB version : 3.3.11
php version : 8.2.16
Avatar utente
eniac
PhpBB Expert
PhpBB Expert
Messaggi: 762
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 »

Allora, viste la mie scarse conoscenze ho fatto cosi, ho creato due pagine , una agganciata alla form che mi inserisce la variabile per la ricerca , ed una che non passa dalla form e visualizza tutti i record ordinati per il campo Calibro, dal menu del portale che attiene al database ho 2 scelte pagina con ricerca selettiva e pagina con tutti i record , per me è gia tanto ma siccome l'appetito vien mangiando vorrei inserire la form per la ricerca direttamente nella pagina che mi visualizza tutti i record, in pratica dal portale dovrei arrivare alla pagina con tutti i record e poi da li dentro avviare la ricerca ma non so come fare a gestire la query nei due modi :redface: :redface:
phpBB version : 3.3.11
php version : 8.2.16
Avatar utente
Micogian
Globalmod
Globalmod
Messaggi: 591
Iscritto il: 17/03/2016, 17:53
Link del Forum: https://www.actaplantarum.org

Re: Inserire immagini in un database

Messaggio da Micogian »

Io direi che si potrebbe fare una sola pagina, dipende da quello che vuoi visualizzare, se un solo tipo di Calibro o tutti i calibri simili.
Potresti fare una pagina con la tabella delle immagini in alto e, a seguire.la Lista dei records, ma per evitare liste troppo lunghe dovresti poter scegliere i calibri da visualizzare nella lista.
Nella Lista devi creare un link cliccabile che ti aggiorna la tabella con il calibro selezionato.
Devi mettere nella tabella del database un ID che èun valure univoco e se clicchi su quel record si aggiorna la tabella delle immagini di quel record.
La lista resta con la possibilità di selezionare un altro record oppure di selezionare una lista diversa.

Per quanto riguarda l'inserimento dei dati l'errore sta nel fatto che nel tuo esempio usi mysql, dovresti usare mysqli.
Dovrebbe essere così

Codice: Seleziona tutto

$result = mysqli_query($link,$toinsert);	//order executes
Ma non ho provato perchè non ho PHP 7 nel mio sito.
l'INSERT dovrebbe essere giusto ma stai poco a controllare, inserisci manualmente un record in phpmyadmin e vedi la query che si crea quando confermi l'inserimento.
Rispondi