PHP/Programmazione/MySQL/Risultati di una query
Wikibooks, manuali e libri di testo liberi.
< PHP | Programmazione | MySQL
- Introduzione PHP/Introduzione
- Installazione e configurazione PHP/Installazione e configurazione
- Programmazione PHP/Programmazione
- Una pagina PHP PHP/Programmazione/Una pagina PHP
- echo PHP/Programmazione/echo
- Commenti PHP/Programmazione/Commenti
- Variabili PHP/Programmazione/Variabili
- Operatori PHP/Programmazione/Operatori
- Array PHP/Programmazione/Array
- Condizioni PHP/Programmazione/Condizioni
- Cicli PHP/Programmazione/Cicli
- Funzioni di base PHP/Programmazione/Funzioni di base
- Funzioni personalizzate PHP/Programmazione/Funzioni personalizzate
- Variabili globali PHP/Programmazione/Variabili globali
- $GLOBALS PHP/Programmazione/Variabili globali/$GLOBALS
- $_GET PHP/Programmazione/Variabili globali/$_GET
- $_POST PHP/Programmazione/Variabili globali/$_POST
- $_SESSION PHP/Programmazione/Variabili globali/$_SESSION
- $_COOKIE PHP/Programmazione/Variabili globali/$_COOKIE
- $_SERVER PHP/Programmazione/Variabili globali/$_SERVER
- File PHP/Programmazione/File
- Immagini PHP/Programmazione/Immagini
- Espressioni regolari PHP/Programmazione/Regexp
- Programmazione orientata agli oggetti PHP/Programmazione/OOP
- Programmazione avanzata con le classi PEAR PHP/PEAR
- PHP e i database PHP/Database
- Funzioni PHP per l'accesso ai database
- Database e object oriented PHP/Dboop
- PHP Design Pattern PHP/PHP Design Pattern
- Smarty PHP/Smarty
- Sicurezza delle applicazioni web PHP/Sicurezza
- PHP CLI: Command Line Interpreter PHP/Cli
- PHP GTK2: applicazioni desktop in PHP PHP/Gtk
- Wikibook credits
Una volta ottenuto il puntatore al risultato della query tramite la funzione mysql_query è possibile procedere all'uso del result-set. Per fare ciò PHP mette a disposizione numerose funzioni:
- la più usata è
mysql_fetch_array(risultato, tipo_array)che restituisce l'i-esimo record del fielset e incrementa di uno l'indice, dove risultato è un puntatore di fieldset MySQL. In base al parametro tipo_array la funzione restituisce valori differenti:MYSQL_ASSOC: il risultato della funzione è un array associativo che ha per chiavi i nomi dei campi e per valori i dati contenuti nel recordMYSQL_NUM: il risultato della funzione è un array associativo che ha per chiavi dei numeri interi e per valori i dati contenuti nel recordMYSQL_BOTH: il risultato della funzione è un array associativo che ha per chiavi sia i nomi sia gli indici numerici dei campi e per valori i dati contenuti nel record.
- Per iterare su tutti gli elementi è sufficiente usare un ciclo
while:
//da notare l'uguale di assegnazione e non di confronto //che assegna a $r ad ogni iterazione il valore restituito dalla funzione... while ($r = mysql_fetch_array($risultato, MYSQL_BOTH) { //stampa ad esempio i valori di una ipotetica tabella utenti sulla pagina echo $r['nome_utente']."<br/>;"; echo $r['data_iscrizione']."<hr/>"; }
- Infatti quando finiscono i record del fieldset la funzione
mysql_fetch_arrayrestituisce un array vuoto, che viene assegnato alla variabile $r. Per le regole di conversione, un array vuoto viene convertito in boolean in FALSE. Negli altri casi, l'array sarà non vuoto e la variabile $r verrà convertita in TRUE.
mysql_num_rows(risultato)restituisce il numero di righe restituite dalla query identificata da risultato. È utilizzato frequentemente per verificare durante un login l'esistenza di un determinato utente con una precisa password. Ad esempio:
<?php //presuppone il collegamento ad un database contentente nomi utente e password if (isset[$_POST['uid']) { //verifica che il form abbia inviato dei valori //è meglio memorizzare le password crittandole, //in modo che siano più sicure, tramite la funzione md5 $q = "SELECT * FROM utenti WHERE uid = '"; $q .= $_POST['uid']."' AND pwd = '".md5($_POST['pwd'])."'"; $ris = mysql_query($q, $conn); if (mysql_num_rows($ris) == 1) { //verifica che esista l'utente //imposta alcune variabili di sessione $_SESSION['logged'] = true; $_SESSION['uid'] = $_POST['uid'] ''...ecc...'' } else { ?> Nome utente o password scorretti. <a href="login.php">Ritorna</a> <?php } }else{ ?> <form method="post" action="login.php"> ''...qui i campi uid e pwd...'' </form> <?php } ?>
mysql_insert_id(database)restituisce l'ultimo valore auto-incrementato dal database (es. campi ID)mysql_data_seek(risultato, posizione)sposta il puntatore del fieldset risultato al record di posizione posizione (partendo da 0)