Descrizione delle Query string per comunicare con MySql.
ALLWEB free
Web Directory Script Linguaggi
Italiano Inglese Tutte
 
 17 Apr 2014
aggiungi in preferiti  
Home    Mappa directory    Script




Query MySql:

Una query non è altro che un collegamento fra il navigatore ed il database MySql. Tramite le query possiamo immettere, variare, cancellare o cercare dati nel database. Con l'utilizzo dei database e delle query possiamo creare un vero sito dinamico, capace di "ricordare" i visitatori, e di interagire con loro.



Resource:

Per comodità definiamo le variabili e la variabile resource.

La variabile resource è la variabile risultante da una query che contraddistingue la connessione al nostro database. Non ne esiste di uguali, e per ogni database dobbiamo creare una nuova variabile resource (nell'esempio si chiama $connessione).

<?
$db_host = "localhost";
$db_user = "nostro user di connessione";
$db_password = "nostra password di connessione";
$db_database = "nome nostro database";
$db_tabella = "nome nostra tabella";

$connessione = mysql_connect($db_host,$db_user,$db_password);
?>
Salviamo queste righe in una pagina del tipo database.php e includiamola in tutte le pagine dove utilizzeremo le connessioni con il database (per eventuali modifiche od aggiunte avremo solo un file da variare).


Inserire una riga:

mysql_db_query($db_database,"insert into ".$db_tabella."(nome, email) values('".$nome."', '".$email."')",$connessione);
In italiano= "Inserisci dentro $db_tabella una riga dove 'nome' è uguale a $nome e 'email' è uguale a $email"
Query che permette di inserire una riga nella tabella. 'nome' ed 'email' sono i nomi delle colonne, mentre $nome e $email sono variabili ottenute dal programma PHP (magari da un form di registrazione...).
La riga verrà aggiunta dopo l'ultima riga della tabella.

N.B.
  • Da notare che $db_tabella è inserita fra due punti, questo perchè la scrittura nella query segue le regole delle stringhe, ossia somma due stringhe(il risultato della variabile e il restante testo stringa) generando una query completa di ogni suo parametro.
    Al posto di $db_tabella potevamo scrivere direttamente il nome della tabella.
  • Altro parametro da non tralasciare sono le variabili che contengono stringhe (vedi paragrafo a fondo pagina). Se una variabile contiene una stringa deve essere contenuta fra doppi apici e apici singoli, altrimenti il programma riscontrerà un errore.



Eliminare una riga:

mysql_db_query($db_database,"delete from ".$db_tabella." where id=5 and id=6 and ....",$connessione);
In italiano= "cancella da $db_tabella la riga dove il parametro id è uguale a 5 e id è uguale a 6 e ...."
Query che permette di eliminare una o più righe che soddisfano l'ultimo enunciato (where id=5 and...)

N.B.
  • Da notare che $db_tabella è inserita fra due punti, questo perchè la scrittura nella query segue le regole delle stringhe, ossia somma due stringhe(il risultato della variabile e il restante testo stringa) generando una query completa di ogni suo parametro.
    Al posto di $db_tabella potevamo scrivere direttamente il nome della tabella.
  • Id è un nome a caso, di solito 'id' è la prima colonna, quella dove sono inseriti i numeri delle righe in sequenza dal primo all'ultimo, ma potrebbe non essere così, dipende dalla tabella creata.



Modificare una riga:

mysql_db_query($db_database,"update ".$db_tabella." set nome='".$nome."', email='".$email."' where id=5 and....",$connessione);
In italiano= "Aggiorna in $db_tabella 'nome' ed 'email' con i valori $nome e $email nelle righe dove il parametro id è uguale a 5 e...."
Query che permette di aggiornare una o più righe che soddisfano l'ultimo enunciato (where id=5 and...)

N.B.
  • Da notare che $db_tabella è inserita fra due punti, questo perchè la scrittura nella query segue le regole delle stringhe, ossia somma due stringhe(il risultato della variabile e il restante testo stringa) generando una query completa di ogni suo parametro.
    Al posto di $db_tabella potevamo scrivere direttamente il nome della tabella.
  • Id è un nome a caso, di solito 'id' è la prima colonna, quella dove sono inseriti i numeri delle righe in sequenza dal primo all'ultimo, ma potrebbe non essere così, dipende dalla tabella creata.



Interrogare una tabella:

mysql_db_query($db_database,"select nome, email from ".$db_tabella." where id=5 ",$connessione);
In italiano= "Seleziona 'nome' e 'email' da $db_tabella nelle righe dove il parametro id è uguale a 5 e...."

Query che permette di selezionare tutte le righe che soddisfano l'ultimo enunciato (where id=5 and...)

N.B.
  • Da notare che $db_tabella è inserita fra due punti, questo perchè la scrittura nella query segue le regole delle stringhe, ossia somma due stringhe(il risultato della variabile e il restante testo stringa) generando una query completa di ogni suo parametro.
    Al posto di $db_tabella potevamo scrivere direttamente il nome della tabella.
  • Id è un nome a caso, di solito 'id' è la prima colonna, quella dove sono inseriti i numeri delle righe in sequenza dal primo all'ultimo, ma potrebbe non essere così, dipende dalla tabella creata.



Interrogare una tabella ed ordinarla:

mysql_db_query($db_database,"select nome, email from ".$db_tabella." where ".$cat."=1 order by nome desc",$connessione);
N.B. In questo caso immaginate di avere delle categorie ($cat) di utenti registrati, esempio uomo=0 e donna=1. Solo chi apparterrà ad una determinata categoria verrà visualizzato (In questo caso solo le donne).

Sostanzialmente è uguale alla query sopra, abbiamo solo aggiunto "order by ..... desc". Al posto dei punti dobbiamo inserire un nome di una colonna della tabella, in questo caso daremo precedenza a quella colonna per ordinare i risultati.

Da notare che il termine desc indica un ordine decrescente (inverso), ossia parte dal valore numerico più alto e scende fino a zero (in lettere parte da Z e finisce alla A.)

Per avere un ordine crescente dobbiamo omettere il termine desc e scrivere solo ...order by nome",$connessione);.


Opzioni query:

Esistono alcuni termini o simboli che se digitati nelle query operano diversamente dalle normali funzioni.


SELECT *
mysql_db_query($db_database,"select * from ".$db_tabella." where id=5 ",$connessione);
In questo caso seleziona tutte le colonne di un determinato range di righe (nell'esempio solo la riga dove id=5).

LIKE
mysql_db_query($db_database," select nome from ".$db_tabella." where nascita=1965 like '%marco%' ",$connessione);
In questo caso selezioniamo la colonna nome e le righe dove nascita=1965.
A questo punto ricerchiamo solo le caselle dove è contenuto 'marco'.
L'opzione like ricerca termini che contengono la parola indicata dopo like.
Il carattere % (percentuale) indica dove devono essere le altre parole (nel caso la parola ricercata sia contenuta dentro un'altra parola). In questo caso prima e dopo.
Nell'esempio possiamo trovare gianmarco o marcogiacomo. Se scriviamo like 'marco%' troviamo solo marcogiacomo, viceversa like '%marco' trova solo gianmarco.


LIMIT
mysql_db_query($db_database," select nome from ".$db_tabella." where nascita=1965 limit 5,10",$connessione);
L'opzione limit è forse uno degli attributi più importanti per snellire il programma che utilizza le query, ed è consigliabile in tutti i casi dove vogliamo ricevere solo una parte delle righe del database. In pratica seleziona solo il campo di risultati indicato.
limit num,num2 Il primo numero indica la riga da cui iniziare a memorizzare i risultati dopo la ricerca, mentre il secondo numero indica per quante righe vogliamo continuare.
Nella query di esempio iniziamo dalla quinta riga (la numero 5) e continuiamo per altre 10.
In questo modo semplifichiamo il lavoro del database e riduciamo il tempo di risposta.


ATTENZIONE:
Nel caso che all'interno di una query si utilizzi una variabile che contiene una stringa si deve compilare la query inserendo la variabile fra apici doppi e apici.

Esempio:
$cogn="bianchi";
mysql_db_query($db_database,"select nome, email from ".$db_tabella." where cognome='".$cogn."' ",$connessione);
Come avrete notato la variabile $cogn è contenuta da doppi apici e apici:
' " $cogn " '
Questo perchè i doppi apici contengono la variabile, che una volta sostituita dal testo string lasciano il posto agli apici (per contenere il testo della stringa che altrimenti non verrebbe distinta dal testo query e genera un errore).