Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 46 di 56
  • livello intermedio
Indice lezioni

Funzioni PHP per l'estrazione dei dati

Tutte le funzioni disponibili in PHP per estrarre i dati da un database
Tutte le funzioni disponibili in PHP per estrarre i dati da un database
Link copiato negli appunti

Prima di passare al codice necessario per l'autenticazione, verrà creata una piccola funzione personalizzata per l'estrazione dei dati dalla tabella deputata, essa si baserà su una specifica funzione nativa che PHP mette a disposizione per questo scopo. In realtà il linguaggio fornisce più soluzioni per la stessa procedura:

  • mysql_fetch_row(): restituisce l'array corrispondente ad una riga caricata, diversamente restituisce FALSE nel caso in cui non siano disponibili sono delle righe; questa funzione carica una riga di dati a partire dal risultato associato ad un determinato identificativo, essa viene restituita sotto forma di array e ciascuna colonna del risultato viene archiviata all'interno di un indice appartenente al vettore, a partire dall'indice "0".
  • mysql_fetch_array(): restituisce un array corrispondente alla riga caricata, diversamente restituisce FALSE nel caso in cui non ci siano più righe; questa funzione si configura come una versione in forma estesa della funzione mysql_fetch_row() precedentemente descritta; mysql_fetch_array(), oltre ad archiviare i risultati di un'interrogazione all'interno di un vettore dotato di indice numerico, li associa a degli indici associativi utilizzando i nomi dei campi quali chiavi; nel caso in cui due o più colonne di uno specifico risultato presentino gli stessi nomi per i campi, avrà la precedenza l'ultima colonna coinvolta dalla query.
  • mysql_fetch_assoc(): restituisce un array associativo corrispondente alla riga caricata, diversamente restituisce FALSE nel caso in cui non ci siano più righe. L'utilizzo di mysql_fetch_assoc() equivale ad una chiamata per mysql_fetch_array() introducendo MYSQL_ASSOC come secondo parametro dove il primo è l'interrogazione al DBMS passata a mysql_query(). La funzione ha unicamente il compito di restituire un array associativo, quindi, quando è necessario avvalersi di un indice numerico invece che di quello associativo, è necessario utilizzare mysql_fetch_array(); nel caso in cui due o più colonne di uno specifico risultato presentino gli stessi nomi per i campi, avrà la precedenza l'ultima colonna coinvolta dalla query.
  • mysql_fetch_object(): restituisce un oggetto dotato di proprietà corrispondenti alla riga caricata, diversamente restituisce FALSE nel caso in cui non vi siano più righe. La funzione utilizza un meccanismo simile a quello di mysql_fetch_array(), ma in questo caso viene restituito in output un oggetto e non un vettore; quindi, mysql_fetch_object() permette l'accesso ai dati tramite i nomi dei campi e non utilizzando il loro indice, in quanto i numeri non sono accettabili come nomi per le proprietà.

Tutte le funzioni elencate accettano come parametro una query di selezione passata alla funzione mysql_query() e potranno essere scelte dall'utilizzatore sulla base delle necessità dell'applicazione corrente; una query di selezione si basa sul comando Sql SELECT a cui devono seguire i nomi dei campi coinvolti nell'estrazione separati da una virgola, o in alternativa il carattere jolly asterisco (*) che indica tutti i campi presenti nella tabella il cui nome è introdotto dalla clausola FROM; una query SELECT può coinvolgere tutti i record presenti in una tabella così come soltanto alcuni o uno solo di essi sulla base di una specifica condizione, questa condizione può essere per esempio un valore relativo ad un campo.

Nel caso del piccolo blog engine descritto in questa trattazione verrà utilizzata mysql_fetch_object() all'interno di una funzione personalizzata chiamata estrai() interna alla classe MysqlClass;

// funzione per l'estrazione dei record 
public function estrai($risultato)
 {
  if(isset($this->attiva))
  {
  $r = mysql_fetch_object($risultato);
  return $r;
  }else{
  return false; 
  }
 }

Anche in questo caso la funzione controlla innanzitutto che esista una connessione attiva a MySQL, se questa è presente, il risultato della query SELECT passata alla funzione mysql_query() sarà utilizzato come argomento per mysql_fetch_object() producendo il valore di ritorno; se invece non dovesse essere attiva alcuna connessione, la funzione si limiterà a restituire FALSE.

Ti consigliamo anche