Mini Corso di PHP
- 17/01/2009
Mini Corso di PHP - News System (User Update) - Lezione 14
Ciao a tutti! Oggi facciamo un'altra lezione del nostro mini-corso. Per concludere le operazioni di base con Mysql, manca solo sapere come aggiornare i dati nel database.
I passaggi fondamentali sono chiamati CRUD, vedere questo link Wiki per maggiori informazioni: http://pt.wikipedia.org/wiki/CRUD~~V
Hai imparato che per inserire i dati nel database usando il comando INSERT ;
Avete imparato che per selezionare i dati dal database utilizzando il comando SELEZIONA ;
Hai già imparato che per eliminare i dati dal database utilizzando il comando DELETE ;
Manca solo l'UPDATE.
Il comando UPDATE viene utilizzato per aggiornare i dati dal database. Di seguito è riportato la sintassi del comando:
- campo1 = valor, campo2 = valor, campo10 = valor UPDATE nome_tabella SET campo1 = valore, campo2 = value = valore campo10
Ma l'esecuzione del comando precedente, tutti i record di questa tabella sarà influenzato. Per l'UPDATE di essere in un (pochi) record (s) specificato, si usa la clausola WHERE e definire un criterio (di solito uso il campo ID). Ecco come il comando sarà:
- campo1 = valor, campo2 = valor WHERE campo_criterio = valor_criterio UPDATE nome_tabella SET campo1 = valore = valore WHERE campo2 = campo_criterio valor_criterio
Per vedere l'intera documentazione di questo comando SQL: http://dev.mysql.com/doc/refman/5.0/en/update.html
Quindi cerchiamo di fare la modifica dei dati degli utenti nel nostro sistema. Facciamo le seguenti:
l Nell'elenco degli utenti (usuarios_lista.php) creerà un link ad un modulo (usuarios_edita_formulario.php) passando l'ID utente via GET, questo file verrà caricato i dati dell'utente in una forma;
l Necessità di creare un file che sarà responsabile di eseguire il comando UPDATE in l'utente corretto.
Il link nella lista sarà molto simile al link creato per rendere la DELETE. Ecco come il file è stato usuarios_lista.php:
- <?
- # === - Includere il file che si connette al database
- 'banco.php' ) ; require ('banco.php');
- ?>
- <h1> lista di utenti del sistema </ h1>
- <?
- # === - Io costruisco il comando SQL che rende la ricerca per gli utenti
- ; 'SELECT id, nome, email FROM utenti Sql $ =;
- # === - Esecuzione di SQL
- # === - Record totali RECUPERO trovato
- # === - I stampare il numero totale di record
- # === - MENTRE mentre il comando è vero, vale a dire, finché c'è record da visualizzare.
- # === - Dichiarare variabili con i dati che sono stati registrati nel database
- [ 'nome' ] ; $ Nome = $ row ['name'];
- [ 'email' ] ; $ Email = $ row ['email'];
- [ 'id' ] ; $ Id = $ row ['id'];
- # === - Stampare il nome e l'indirizzo e-mail
- . $id . "'>Apagar</a> - <a href='usuario_edita_formulario.php?id=" . $id . "'>Editar</a> ]<BR>" ; echo "$ name <b> </ b> (<a href='mailto:$email'> $ email </ a>) -.. [<a href = '? usuario_delete.php id =' $ id" ' > Elimina </ a> - <a href='usuario_edita_formulario.php?id=". $id. "'> Modifica </ a>] <BR> ";
- }
- ?>
Solo la linea 28 ha avuto il cambiamento.
Metti alla prova il browser e verificare se il link funziona correttamente. Sotto c'è una foto del mio schermo:
Ora abbiamo bisogno di rendere il file che visualizza i dati utente in un modulo. Facciamo duplicato 'usuario_formulario.php' il file e rinominare la copia a 'usuario_edita_formulario.php'. Poiché così non abbiamo bisogno di fare di nuovo il modulo ![]()
Ecco come va la usuario_edita_formulario.php, spiega il codice qui sotto:
- <?
- # === - Includere il file che si connette al database
- 'banco.php' ) ; require ('banco.php');
- # === - Abbiamo ricevuto l'ID utente, al fine di selezionare i dati dal database
- [ 'id' ] ; $ Id = $ _GET ['id'];
- ; $ Sql = "SELECT * FROM utenti WHERE id = $ id";
- { Else {}
- }
- ?>
- <h1> Edition utenti </ h1>
- method= "POST" > <form name= "form1" action= "usuario_edita.php" method= "POST">
- value= "<?=$dados['id']?>" > <Input type = nome "hidden" value = "id" = "<? = $ Dati ['id']?>">
- id= "nome" maxlength= "50" value= "<?=$dados['nome']?>" /><BR> Nome: <input type = nome di "text" id = "Nome" maxlength = "nome" value = "50" = "? <= $ Dati ['name']>" /> <BR>
- name= "email" id= "email" maxlength= "50" value= "<?=$dados['email']?>" /><BR> E- email : <input type = nome di "text" id = "email" maxlength = "email" value = "50" = "? <= $ data ['email']>" /> <BR>
- id= "usuario" maxlength= "12" value= "<?=$dados['usuario']?>" /><BR> Utente: <input type = nome di "text" id = "Utente" maxlength = "Utente" value = "12" = "? <= $ Dati ['User']>" /> <BR>
- id= "senha" maxlength= "12" value= "<?=$dados['senha']?>" /><BR> Password: <input type = nome di "text" = "password" maxlength id = "password" value = "12" = "? <= $ Dati ['password']>" /> <BR>
- <BR>
- /> <input type= "submit" value= "Enviar" />
- </ Form>
- <?
- { Else {}
- # === - Ritiene che l'ID non è corretto
- }
- ?>
Linea 3: Chiamiamo il file che si connette al database
Line 6: Abbiamo ricevuto l'ID che è stato passato via GET.
Linea 8: Controlliamo se il parametro passato (ID) è valida, vale a dire se questo significa che il numero è forse un ID.
Linea 10/11: i dati degli utenti selezionati, si noti che non si specificano i campi che vengono recuperati ... utilizzare il carattere jolly * per portare tutti i campi.
Linea 13: Controlliamo se la variabile $ sql non è vuota.
Linea 14: Se non è vuota, lo trasformiamo in un array () con i dati degli utenti.
Linea 16: Se è vuoto, abbiamo segnalato l'errore;
Linea 17: Abbiamo ucciso lo script, in modo da non visualizzare il modulo vuoto.
Linha23: Noi definire il 'action' e 'usuario_edita.php' il file in quanto sarà responsabile per fare l'UPDATE.
Linea 24: Creiamo un campo di tipo HIDDEM (nascosta) con l'ID utente. Per dobbiamo passare il file UPDATE correttamente.
25/26/27/28 line: Ci sono 'value' l'attributo in tutti i campi, ricevono il corrispondente valore restituito dal database. In breve: Causa il modulo per trasportare i dati dell'utente.
* Nota 1: Il PHP Command è una scorciatoia per <<=?>? echo?>
* Nota 2: ricordarsi di cambiare il tipo di campo Password la password per il testo.
Linea 35: Mostra di errore se l'id non è numerico.
Ora per il test! Fare clic su 'Edit' da un utente e vedere se il sistema si comporterà correttamente. Vedere una foto del mio computer:
Perfetto, ora rimane a 'usuario_edita.php' il file. Deve essere così:
· Ricevere i dati del modulo;
· Eseguire UPDATE;
· Mostra messaggio di errore o successo;
Così vedi sotto per quanto il file è stato:
- <?
- # === - Includere il file che si connette al database
- 'banco.php' ) ; require ('banco.php');
- # === - Controlliamo che la persona compilare tutti i campi
- # === - I dati del modulo RECUPERO
- [ 'id' ] ; $ Id = $ _POST ['id'];
- [ 'nome' ] ; $ Nome = $ _POST ['name'];
- [ 'email' ] ; $ Email = $ _POST ['email'];
- [ 'usuario' ] ; $ Utente = $ _POST ['utente'];
- [ 'senha' ] ; $ Password = $ _POST ['password'];
- # === - Io costruisco il comando SQL che fa UPDATE nel database
- ; $ Sql = "UPDATE utenti SET nome = '$ name', email = '$ email', user = '$ utente', '$ password' password = WHERE id = $ id";
- # === - Esecuzione di SQL
- # ==== - Vedo che il comando è stato eseguito con successo
- $sql ) { if ($ sql) {
- echo 'utente modificato con successo. Href="usuario_lista.php"> <a <BR> Clicca qui </ a> per visualizzare l'elenco degli utenti registrati '.;
- { Else {}
- echo "Oops .. ( ) . ') – ' . mysql_error ( ) ; è verificato un errore: ('. mysql_errno (). ') -'. mysql_error ();
- }
- { Else {}
- echo 'Si prega di compilare tutti i campi. Fare clic su <a href = <BR> "usuario_formulario.php"> qui </ a> per tornare '.;
- }
- ?>
Io commento solo le linee più importanti:
Line 6: Abbiamo testato tutti i dati sono stati inseriti;
Linea 16: Importo comando SQL, come abbiamo imparato all'inizio della classe. Ricordando un set nella clausola WHERE, se non fosse impostato, i dati inseriti nel modulo dovrebbe essere applicato a tutti gli utenti del sistema.
Come dico sempre, stiamo facendo un mini-corso. Naturalmente si potrebbe implementare questo sistema in diversi modi (anche più corretto), ma l'idea di questo corso è di dare un'introduzione al PHP. Se avete domande o suggerimenti si prega di inviare solo.
Un grande abbraccio.





14 Responses to "Mini Corso di PHP - Sistema di News (User Update) - Lezione 14"
Ciao Marcelo, sto controllando il codice per aggiornare gli utenti del file usuario_edita_formulario.php e la definizione della variabile 'id' per il mondiale GET stranamente sta restituendo un errore di sintassi. Piuttosto, io sto usando il codice personalizzato, per allenarsi. Volerà mangiato in qualche classe precedente '.
Il mio codice è simile:
<?
/ / Include il file che si connette al database
require ('banco.php');
/ / Otteniamo l'ID utente, al fine di selezionare i dati dal database
$ Id = $ _GET ['id'];
/ / Se (is_numeric ($ id)) {
$ Sql = "SELECT * FROM notizie WHERE id = $ id";
$ Sql = mysql_query ($ sql);
if (empty ($ sql)) {
$ Dati = mysql_fetch_array ($ sql);
Else {}
echo "NEWS non trovato! Indietro ";
die ();
}
}
?>
Modifica di utenti
<input type="hidden" name="id" value="">
Nome: <input type="text" name="name" id="nome" maxlength="50" value="" />
Cognome: <input type="text" name="sobrenome" id="sobrenome" maxlength="50" value="" />
Città: <input type="text" name="cidade" id="cidade" maxlength="50" value="" />
Status: <input type="text" name="estado" id="estado" maxlength="12" value="" />
E-mail: <input type="text" name="email" id="email" maxlength="12" value="" />
Titolo: <input type="text" name="titulo" id="titulo" maxlength="50" value="" />
Didascalia: <input type="text" name="subtitulo" id="subtitulo" maxlength="50" value="" />
Testo: <input type="textarea" name="texto" id="texto" maxlength="50" value="" />
<?
Else {}
/ / Chiama l'ID non è corretto
echo "Inserire un ID valido! Indietro ";
}
?>
Con Patrick (1 commenti) su 18/01/2009
VLW, Kra.
Vado a vedere se ti piace, posso sempre postare.
Abbracci,
Con Michael Mafort (7 commenti) su 2009/01/18
Questo è kra ... se hai bisogno di aiuto basta dirlo!
Avete conoscenze da condividere come l'inferno! Ho intenzione di inserire molte cose nuove quando iniziare a studiare per la certificazione può fare una partnership ... heheheheh
Grande abbraccio!
Per Marcelo Sabadini (112 commenti) il 2009/01/18
Patrick Ciao tutto bene?
Beh, per prima cosa grazie per essere seguendo il corso mini.
Non seguite lui sia corretta:
1) Controllare tutte le virgolette, perché quando der CTRL + C e CTRL + V, infatti, le virgolette sono sostituiti con accenti (il plugin genera il codice colore nel mio blog rende = /).
2) Ho visto che hai commentato la riga che ha la IF per verificare che l'ID è numerico! Decommentarla ok?
3) Dopo il die (), chiudere} solo uno (chiave). Chiudendo un altro, si sta chiudendo la FI che convalida il numero ID di essere!
In questo modo lo script si ottiene il 100%!
QQ solo postare qualcosa!
Grande abbraccio!
Per Marcelo Sabadini (112 commenti) il 2009/01/18
Marcelo! Ho messo sul mio usuario_cadastro.php
invece di un tag input di selezione, ma sapevo come gestire il valore dei dati manca poi dice di riempire il campo. VLW!
By Alessandro Coelho (5 commenti) su 22/03/2009
Buona sera Alessandro okay?
Prima di tutto grazie per aver visitato il mio sito ... e il complimento!
Ebbene, rispetto a registrare le date in MySQL è un piccolo dettaglio. Il formato che memorizza i campi del database di tipo DATE è: YYYY-mm-dd.
Così, quando si dispone di un campo che riceve gg-mm-aaaa formato che dovete stare nel formato previsto da parte della banca.
Il modo più semplice che ho trovato è il seguente:
Ora la variabile $ data_formatada tutto questo pronto per essere inserito in Mysql.
Ma, ricordatevi di curare la data se DATETIME. Bisogna separare le ore e inserire il $ data_formatada.
Spero che questo aiuti .. Un grande abbraccio!
Per Marcelo Sabadini (112 commenti) il 2009/03/22
Ha funzionato .. era solo un errore in usuario_cadastro.php!
Io
By Alessandro Coelho (5 commenti) su 22/03/2009
L'ho fatto un VARCHAR per registrare la data .. facinhu bene. Il DATE, sono ancora da imparare = D
By Alessandro Coelho (5 commenti) su 23/03/2009
Marcelo! + Una cosa! Ci scusiamo per il diluvio ..
Se voglio configurare gli account in modo che io possa fare il login e definire chi ha accesso a postare la notizia che avrebbe dovuto creare un boolean tipo di tabella, giusto? Tipo numerico BOOL? Se si potesse poi mostrano come rendere la pagina di login sarebbe fantastico! FLWS
By Alessandro Coelho (5 commenti) su 23/03/2009
@ Alessandro Coelho .. Mi consiglia di non utilizzare varchar.
Beh, se avete bisogno di filtrare in base alla data che sarà un mal di testa .. ad esempio
- Pick up records in un intervallo di date
- O sollevare il record del X mese;
pensare di fare un sistema di news che si mostrerà più accessed notizia SOH q della stessa data dello scorso anno. Sarebbe un gran mal di testa hehehehe
Abbracci!
Con Marcelo (3 comments) su 23/03/2009
Marcelo, buon pomeriggio!
Sto iniziando a programmare in PHP e sto con un dubbio, ha guidato la struttura secondo le loro informazioni, ma il valore command = ""> non viene presentata i valori dalla banca e che l'aggiornamento non funziona, mi puoi dare una aiuto.
Saluti
Per la Ferrari (1 commenti) su 2009/11/27
Il nostro è piaciuto studiare qui a casa sto dando questo diritto!
un buon progetto che ho fatto è stato il CRM pro si prega di un sistema che profumo di registrarsi sul sito, sarebbe caduto nelle domande già fatte direttamente nel database e phpadm proprio questo e ha funzionato lì, voleva conoscere la percentuale di ogni risposta ogni cliente!
più si poteva solo tirare il nome della persona, domanda e risposta e volevo imparare a tirare questa risposta porgentagem a ciascun cliente?
il database, era:
clienti: id_cliente, nome, indirizzo
e la caduta nella domanda tabella del registro di
era: codigo_pergunta chiede
e le risposte da tavolo
codigo_resposta, codi_cliente, codi_pergunta, risposta.
Possiamo farlo solo:
pussar il codice cliente, nome del cliente, le domande e le risposte!
tanto più che voleva porgentagem potrebbe tenere una conferenza su questa parte? /
Per Kelly (1 commenti) su 2010/11/06
Guy, che ha registrato .. Grazie mille ... davvero mi ha aiutato nel mio stage .. grazie
By Edward Meneses (2 commenti) su 23/11/2011
Ho bisogno di aiuto, il mio codice ha fatto praticamente lo stesso per l'aggiornamento, quando si cambia si vede "di dati è cambiato con successo" ma la banca non mostra aggiornato
By Edward Meneses (2 commenti) su 24/11/2011