interfacciare database mysql con form

master1986

Utente Attivo
8 Ott 2012
234
0
16
Ciao ragazzi, dopo tante storie e grazie al prezioso aiuto di helpdesk sono riuscito a poter caricare i dati sul mio database mysql. una grande cosa per la mia applicazione che sto realizzando.

I dati sono correttamente salvati in diverse tabelle


Quello che dovrei fare ora è creare un form, che mi permetta di "variare" tali dati, potendo scegliere tra alcuni dati disponibili in un array. in passato borgoitalia mi ha dato una grossa mano a realizzare tale form basato sulla lettura di un file txt. Ora vorrei rieseguire la stessa procedura solo che in questo caso dovrà leggere dal database mysql.


Ipotizzando che il mio database abbia questa struttura:

Database:
- Tabella 1
-- Campo 1
-- Campo 2
-- Campo 3
-Tabella 2
-- Campo 1
-- Campo 2
-- Campo 3



Con il form dovrei poter variare tali dati presenti in queste tabelle, unico particolare dovrei utilizzare una "select", ovvero, nel form su ogni voce deve essere possibile poter scegliere quali dati caricare. Esempio, nel campo1 teoricamente io dovrei vare dei valori da 1 a 50, quindi dovrei creare un array che mi dia la possibilità di selezionare da 1 a 50 quale valore poter inserire. il campo di inserimento scritto non può essermi utile in questo caso, perchè ogni array deve contenere una descrizione di dati, esempio 1 = Descrizione , 2 = altronome, cioè devo poter scrivere dei valori da poter scegliere.

non penso sia complessa come cosa.


chi mi da una mano a strutturarlo?

Siete sempre i migliori ;)
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Ciao, vuoi creare una cosetta di questo tipo?
PHP:
 <form action="scrivi.php" method="post">
        <label>Scegli dato:
        <select name="tipo" id="tipo">
            <option value="a">Dato1</option>
            <option value="b">Dato2</option>
            <option value="c">Dato3</option>
        </select>
        <input type="submit" name="Submit" value="invia">
    </form>
Con il file scrivi.php fai la query di update e sostituisci il dato.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
c'è una cosa che non mi torna.
la tabella/e sono con un solo record? altrimenti quale record deve andare a uppare? non c'è l'id primay key autoncrement?
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Giusto, ha ragione! borgo anche se fossero solo 3 avresti bisogno di un id
altrimenti non puoi specificare quale delle tabelle aggiornare.
 

master1986

Utente Attivo
8 Ott 2012
234
0
16
Ciao ragazzi, grazie delle risposte :)


non ho capito tanto quale primary key intendete :D anche perchè sono all'inizio con mysql quindi è già molto avere un db pieno di dati :love:



ditemi da dove dovrei prenderlo per farvi capire :fonzie:
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
come già saprai un db è fatto di tabelle, le tabelle di record, i record di campi.
saltiamo una parte e arriviamo ai record e campi e ipotiziamo che i record siano
nome cognome
Franco Rossi
Mario Binchi
Pinco Pallonzi
ecc...

opss ho inserito Binchi al posto di Bianchi quindi devo correggere, non basta indicare il nome del campo per correggere, ma devo indicargli anche in quale record
quindi quando creo una tabella inserisco per prima un campo che identifica il record (identificandolo, lo chiamo id, ma non è obbligatorio)
questo campo generalmente viene creato con queste caratteristiche

int(9) cioè numero intero, il 9 indica il numero di cifre massimo
autoincremnt cioe si incrementa automaticamente (in questo caso di uno trattandosi di numeri interi) ogni qualvolta inserisci un nuovo record
primary key cioe definisco il campo come una chiave di ricerca primaria e quindi NON possono esistere due record con la stessa chiave (in questo caso es non possono esistere due record col numero 3).

la tabella sopra diventa
id nome cognome
1 Franco Rossi
2 Mario Binchi
3 Pinco Pallonzi
ecc....

quindi indicando l'identificativo e il nome del campo vado a correggere Binchi e non Pallonzi

$query "UPDATE tabella SET cognome="Bianchi" WHERE id=2"

spero di essere stato chiaro, altrimenti chiedi
 

master1986

Utente Attivo
8 Ott 2012
234
0
16
ciao
come già saprai un db è fatto di tabelle, le tabelle di record, i record di campi.
saltiamo una parte e arriviamo ai record e campi e ipotiziamo che i record siano
nome cognome
Franco Rossi
Mario Binchi
Pinco Pallonzi
ecc...

opss ho inserito Binchi al posto di Bianchi quindi devo correggere, non basta indicare il nome del campo per correggere, ma devo indicargli anche in quale record
quindi quando creo una tabella inserisco per prima un campo che identifica il record (identificandolo, lo chiamo id, ma non è obbligatorio)
questo campo generalmente viene creato con queste caratteristiche

int(9) cioè numero intero, il 9 indica il numero di cifre massimo
autoincremnt cioe si incrementa automaticamente (in questo caso di uno trattandosi di numeri interi) ogni qualvolta inserisci un nuovo record
primary key cioe definisco il campo come una chiave di ricerca primaria e quindi NON possono esistere due record con la stessa chiave (in questo caso es non possono esistere due record col numero 3).

la tabella sopra diventa
id nome cognome
1 Franco Rossi
2 Mario Binchi
3 Pinco Pallonzi
ecc....

quindi indicando l'identificativo e il nome del campo vado a correggere Binchi e non Pallonzi

$query "UPDATE tabella SET cognome="Bianchi" WHERE id=2"

spero di essere stato chiaro, altrimenti chiedi




Risposta chiara borgo, quello che mi stai facendo capire è che probabilmente ho sbagliato a strutturare il database.


quando ho costruito le tabelle ho fatto in questo modo


CREATE TABLE Tabella (
Campo1 VARCHAR(20),
Campo2 VARCHAR(20),
Campo3 VARCHAR(20)
);



Da quello che ho capito dovevo indicare più cose vero?
 

master1986

Utente Attivo
8 Ott 2012
234
0
16
a questo punto consigliami come strutturare il database che lo rifaccio dato che sono ancora pochi i dati.
 

master1986

Utente Attivo
8 Ott 2012
234
0
16
ciao
come già saprai un db è fatto di tabelle, le tabelle di record, i record di campi.
saltiamo una parte e arriviamo ai record e campi e ipotiziamo che i record siano
nome cognome
Franco Rossi
Mario Binchi
Pinco Pallonzi
ecc...

opss ho inserito Binchi al posto di Bianchi quindi devo correggere, non basta indicare il nome del campo per correggere, ma devo indicargli anche in quale record
quindi quando creo una tabella inserisco per prima un campo che identifica il record (identificandolo, lo chiamo id, ma non è obbligatorio)
questo campo generalmente viene creato con queste caratteristiche

int(9) cioè numero intero, il 9 indica il numero di cifre massimo
autoincremnt cioe si incrementa automaticamente (in questo caso di uno trattandosi di numeri interi) ogni qualvolta inserisci un nuovo record
primary key cioe definisco il campo come una chiave di ricerca primaria e quindi NON possono esistere due record con la stessa chiave (in questo caso es non possono esistere due record col numero 3).

la tabella sopra diventa
id nome cognome
1 Franco Rossi
2 Mario Binchi
3 Pinco Pallonzi
ecc....

quindi indicando l'identificativo e il nome del campo vado a correggere Binchi e non Pallonzi

$query "UPDATE tabella SET cognome="Bianchi" WHERE id=2"

spero di essere stato chiaro, altrimenti chiedi




Ho fatto dei controlli, si il database risulta così strutturato, infatti con una semplicissima query (come quella da te postata eseguo l'aggiornamento)


ora devo solo strutturare il form.



Facciamo un esempio pratico come il tuo


ID NOME COGNOME INDIRIZZO COLORE PREFERITO

1 Mario Rossi via milano 1
2 Giovanni Robbe via roma 2
3 Carlo Decarlo via venezia 3



A questo punto devo strutturare un form che mi consenta di variare il "colore"

premetto che il colore deve avere un array, perchè nel mysql ci saranno dei valori numerici e non di testo

quindi l'array deve essere così costituito

rosso = 1 bianco = 2 giallo= 3


quindi quando si aprirà il form comparirà alla voce Mario Rossi una tendina da dove poter scegliere il colore presente nell'array, una volta selezionato basterà cliccare su invia per aggiornare il database


Penso di averti fatto capire cio che voglio fare.


Una cosa importante è che nel form compaia il valore attuale presente nel mysql, perchè altrimenti non riesco a sapere che dato è presente per poterlo variare in caso di necessità.
 

master1986

Utente Attivo
8 Ott 2012
234
0
16
Ciao, vuoi creare una cosetta di questo tipo?
PHP:
 <form action="scrivi.php" method="post">
        <label>Scegli dato:
        <select name="tipo" id="tipo">
            <option value="a">Dato1</option>
            <option value="b">Dato2</option>
            <option value="c">Dato3</option>
        </select>
        <input type="submit" name="Submit" value="invia">
    </form>
Con il file scrivi.php fai la query di update e sostituisci il dato.



Proprio questo :) nel messaggio di prima ho strutturato un database sull'esempio di borgo :) ipotizziamo che vorrei variare il dato "colore" potendolo scegliere.

ovviamente tale scelta a tendina, deve essere disponibile per tutti i nomi presenti.


spero di essere stato chiaro
 

master1986

Utente Attivo
8 Ott 2012
234
0
16
per farvi capire meglio ecco la tabella Cattura.JPG




Il dato da modificare è il colore, l'array sarà ad esempio: giallo= 1, blu= 3, verde = 8, da poter scegliere nel menu a tendina del form ;)
 

helpdesk

Utente Attivo
30 Set 2009
726
0
0
Pesaro
Ciao per fare una cosa del genere prima devi riconoscere l'utente con un login.
Poi dopo averlo riconosciuto e sai che Mario Rossi vuole aggiornare il colore allora puoi dargli una lista
di colori e farglielo cambiare se non riconosci l'utente puoi sostituire il colore ma il colore di chi?
di Mario? di Giovanni?
 

master1986

Utente Attivo
8 Ott 2012
234
0
16
helpdesk ascolta, il sistema che hai sviluppato per aggiornare i dati, nel topic precedente

http://forum.mrwebmaster.it/php/34194-errore-aggiornamento-tabella-mysql-4.html


Funziona benissimo, ho solo la necessità di avere un menu a tendina da cui poter scegliere i parametri, al posto del campo di immissione, mi servirebbe un campo di selezione.

E il gioco è fatto senza che vi faccio perdere ulteriore tempo


Il campo di selezione deve contenere una parola che esprime un numero

Esempio:


Nome ---> 1
Cognome ----> 6
indirizzo ---> 5




Praticamente se scelgo "nome" nella selezione nel database mi verrà aggiornato il valore 1


spero che sia semplice il tutto, poi ho sistemato!
 

master1986

Utente Attivo
8 Ott 2012
234
0
16
Ciao, vuoi creare una cosetta di questo tipo?
PHP:
 <form action="scrivi.php" method="post">
        <label>Scegli dato:
        <select name="tipo" id="tipo">
            <option value="a">Dato1</option>
            <option value="b">Dato2</option>
            <option value="c">Dato3</option>
        </select>
        <input type="submit" name="Submit" value="invia">
    </form>
Con il file scrivi.php fai la query di update e sostituisci il dato.




ho risolto adattando a pennello il tuo script

CONSENTITEMI IL MAIUSCOLO, GRAZIE MILLE HELPDESK! :fonzie:
 
Discussioni simili
Autore Titolo Forum Risposte Data
C come interfacciare asp e mysql Classic ASP 3
I Modulo per interfacciare Danea e Zen Cart Presenta il tuo Sito 0
C Interfacciare Matlab Con Dos Programmazione 0
1 Interfacciare PHP e MYSQL PHP 1
A interfacciare flash e mysql Flash 0
I nome utente non esiste nel database PHP 1
M Invio dati database via email php PHP 0
MarcoGrazia Salvataggio HTML in database PHP 2
C prendere dei valori da Plugin e inserirli nel database joomla Joomla 0
F Stampare valori di un database PHP 14
MarcoGrazia Trovare record nel database partendo da id non sequenziali PHP 6
Max 1 Accesso a database phpBB 2
L PHPSpreadsheet inserire dati da file .xlsx/.xls su database PHP 2
D passare valori da database sql a php PHP 1
L form immagini per il database PHP 0
R [C#] Quali dipendenze occorrono su progetto "Setup" con Access Database? .NET Framework 1
D Visualizzazione pagina basata sul valore di un campo del database PHP 2
G Appicazione HTML per inserimento dai in Database Access Microsoft HTML e CSS 0
socket32 [XAMPP] Server in Locale condividere database MySQL 0
J Form inserimento dati in database Ajax 1
Z Problema database MySQL con XAMPP PHP 0
D Estrarre database con link esterno Database 10
T [A pagamento] convertire database Offerte e Richieste di Lavoro e/o Collaborazione 5
A Mostrare dati database per pagine PHP 2
G gdpr database Leggi, Normative e Fisco 0
Tommy03 App mobile+ sito web con lo stesso database Sviluppo app per Android 4
Alex_70 Delete foto in database e cartella PHP 72
L Upload di un'immagine all'interno di un database usando php PHP 6
M modificare un file .XML da database Sql PHP 13
E lettura da un Database con Javascript jQuery 2
A Inserimento dati nel database tramite form + altre operazioni PHP 18
A Menù a tendina collegato a database PHP 13
C Store in PHP nel Database PHP 8
G Problema update di un database PHP 0
G database mysql contengono informazioni ? MySQL 0
S Database Netsons: come accedere da remoto PHP 1
L inviare i dati di un form ad un database PHP 6
L Collegare un form html ad un database access Javascript 2
S filtrare database mysql MySQL 3
Alex_70 Scrape php database PHP 3
U database PHP 1
@ VENDO database e sito Compravendita siti e domini 0
M Estrarre dati da un database PHP 2
Valerio93 Importare database senza backup MySQL 0
elpirata Popolare campi tabella con totali estratti da database PHP 24
S [PHP] email con inserimento dati nel database PHP 23
avalon95 [WordPress] Gestione database annunci WordPress 0
K [MySQL] Impostare Database MySQL 2
G Invio mail con php da dati prelevati da un database PHP 9
D [WordPress] Link eliminati ancora presenti nel database, è possibile? WordPress 0

Discussioni simili