Visita Orebla.it su Facebook Segui Orebla.it su Twitter Vedi i video su YouTube di Orebla.it Unisciti alle cerchie di Orebla.it
DOVE TI TROVI: \\ Home Page\php\Guida al PHP: Query SQL, MySql

Imparare il PHP: Database

autore: Orebla
xx/xx/xx

Query SQL, MySql:

Bene dopo aver spiegato come connetterci al database MySql vi spiego come eseguire delle query.

Per chi non sapesse cosa sono le query vi rimando alla solita WikiPedia... 
Ecco il link: http://it.wikipedia.org/wiki/Query.

Dopo che vi siete acculturati sul significato di query vi illustro la funzione principale del PHP per eseguire il codice SQL nei database MySql.

  1. mysql_query [info]
Come potete vedere dalla documentazione ufficiale gli elementi richiesti da questa funzione sono principalmente due:

mysql_query("QUERY SQL", $connessione)

L'elemento QUERY SQL è dove va inserito il codice SQL, la variabile $connessione è relativa alla connessione che abbiamo effettuato nella guida precedente dove spiego come connettersi al database.

Il primo elemento è obbligatorio in quanto senza questo la funzione non esisterebbe, mentre per il secondo elemento si può anche decidere di non metterlo. In questo caso il PHP utilizzerebbe l'ultima connessione lasciata aperta, oppure tenterebbe una connessione lui come se si utilizzasse la funzione mysql_connect senza elementi. Vi consiglio comunque di mettere sempre il nome della variabile che avete utilizzato come resource.

Bisogna specificare i valori che questa funzione restituisce al momento della sua esecuzione, per poi regolarci su che altra funzione utilizzare per gestire i risultati.

Dalla documentazione ufficiale si capisce che nel caso in cui nella query SQL vengano utilizzati i comandi: SELECT, SHOW, EXPLAIN o DESCRIBE; la funzione restituisce un identificativo di risorsa, cioè significa che la funzione restituisce il risultato. Ovviamente in caso di errore restituisce FALSE se la query è sbagliata.

Per gli altri comandi restituisce solamente TRUE o FALSE.

Facciamo subito un esempio pratico per chiarire il tutto:

<?
$connessione = mysql_connect("localhost","nome","password")or die("Connessione non riuscita: " . mysql_error());
   print ("Connesso con successo");

mysql_select_db("prova", $connessione) or die("Errore nella selezione del database";

$query = mysql_query("SELECT * WHERE 1=1",$connessione);

if ($query==FALSE) die("errore nella composizione della query");

mysql_close($connessione);
?>


Come potete vedere dal codice ho inserito una semplice query SQL che restituisce tutti i record (?) che corrispondono alla clausola 1=1... Cioè tutti dato che 1 è sempre uguale a 1...

Bene se non abbiamo ottenuto nessun errore stampato a schermo significa che la nostra query è stata eseguita con successo.

Ora cerchiamo di estrapolare il risultato, per capire meglio prima creo uno schema di come è fatta una tabella del nostro database.

Nome Cognome
Paolo Rossi
Mario Bianchi
Come vedete questa semplice tabella è composta da due campi: "Nome" e "Cognome", eseguendo la query di esempio sopra riportata ci verranno restituiti tutti e due i nomi e cognomi.

In questo caso per gestire i risultati possiamo utilizzare alcune funzioni di PHP che ci semplificano la vita, le funzioni sono diverse perchè ognuna svolge una funzione diversa, io ve le elenco poi vi farò qualche esempio con alcune di esse. Le altre le potete trovare semplicemente consultato la documentazione ufficiale.

Lista funzioni per risultati:

  1. mysql_num_rows [info]
  2. mysql_affected_rows [info]
  3. mysql_fetch_array [info]
  4. mysql_fetch_row [info]
  5. mysql_fetch_assoc [info]
  6. mysql_result [info]
Io ho sempre utilizzato due di queste funzioni, che sono mysql_fetch_row e mysql_fetch_array. Sono funzioni semplici da utilizzare e molto potenti per la creazione di script dinamici.

Allora per visualizzare i risultati vi creo un altro esempio:

<?
$connessione = mysql_connect("localhost","nome","password")or die("Connessione non riuscita: " . mysql_error<());
   print ("Connesso con successo"); mysql_select_db("prova",
$connessione) or die("Errore nella selezione del database";
$query = mysql_query("SELECT * WHERE 1=1",$connessione);
if ($query==FALSE) die("errore nella composizione della query");

mysql_close($connessione);
while($row=mysql_fetch_array($query)){
echo "nome: ".$row[nome];
echo "<br>";
echo "cognome: ".$row[cognome];
}
?>
Come potete vedere ho utilizzato un ciclo WHILE per aiutarmi nella "stampa" a video dei risultati. Una volta eseguito lo script avremo i seguenti risultati "stampati" a video:

nome: Paolo

cognome: Rossi

nome: Mario

cognome: Bianchi

Ora vi spiego il codice utilizzato nell'esempio, il ciclo while mi serve per estrapolare uno per uno tutti i risultati. Se leggete la documentazione relativa alla funzione mysql_fetch_array() noterete che crea un array che come indice ha i nomi dei campi della tabella e come argomento i record della tabella. Quindi ci basta semplicemente chiamare l'array ($row) e poi selezionare l'indice dell'argomento che vogliamo visualizzare ($row[nome]). Questo stamperà i risultati.

Spero di essere stato chiaro nella spiegazione di come ottenere i risultati e come svolgere query SQL con PHP e MySql.









Recensione iPhone 5S!

Recensione iPhone 5!