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 ;)
 
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.
 
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?
 
Giusto, ha ragione! borgo anche se fossero solo 3 avresti bisogno di un id
altrimenti non puoi specificare quale delle tabelle aggiornare.
 
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:
 
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
 
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?
 
a questo punto consigliami come strutturare il database che lo rifaccio dato che sono ancora pochi i dati.
 
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à.
 
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
 
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 ;)
 
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?
 
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!
 
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