Strumenti Utente

Strumenti Sito


php:select_php

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisioneRevisione precedente
Prossima revisione
Revisione precedente
php:select_php [2024/04/16 07:12] – [Sintassi MySql] davidnphp:select_php [2024/04/16 09:50] (versione attuale) – [Query di selezione nel PHP] davidn
Linea 10: Linea 10:
 La sintassi della SELECT è la seguente: La sintassi della SELECT è la seguente:
  
-<Code:mysql linenums:1 | Query di selezione>+<Code:SQL linenums:1 | Query di selezione>
 SELECT listaCampi FROM nomeTab SELECT listaCampi FROM nomeTab
 WHERE condizioni WHERE condizioni
 </Code>  </Code> 
  
-  * listaCampi: è la lista dei campi della tabella che vogliamo selezionare, se li vogliamo selezionare tutti si può usare i carattre jolly ** * ** +  * **listaCampi**: è la lista dei campi della tabella che vogliamo selezionare, se li vogliamo selezionare tutti si può usare i carattre jolly ** * ** 
-  * +  * **nomeTab**: nome della tabella sulla quale vogliamo operare 
 +  * **condizioni**: condizioni sui campi 
 + 
 +E' prassi scrivere le parole dell'SQL in maiuscolo. 
 + 
 + 
 +Supponiamo di avere la seguente tabella __utenti__ : 
 +^id^username^email^password^ 
 +|1|campione88|campione88@libero.it|1234qwer| 
 +|2|lollo|lollo234@gmail.com|superPWD75!!| 
 +|3|cippaLippa|albertoScala@gmail.com|pallino!!| 
 +|5|malibuStacy|lisa.s@hotmail.com|sassofono| 
 +|6|malibuStacy2|waylon@smithers.name|eccellente| 
 + 
 +Solitamente in una tabella di untenti la password non è in chiaro. 
 +Nelle tabelle solitamente c'è un campo che individua univocamente una riga, questo campo speciale è detto **chiave primaria**. Nella nostra tabella la chiave è il campo id.  
 + 
 +<Code:SQL linenums:1 | esempio select> 
 +SELECT id,email FROM utenti 
 +WHERE username = 'lollo' AND password='superPWD75!!' 
 +</Code> 
 + 
 +**Il risultato di una query di slezione è UNA TABELLA**. 
 + 
 +Quello che c'è tra SELECT e FROM definisce il numero di colonne della **tabella** riusltato, le condizioni scritte nel WHERE incidono sul numero di righe. 
 + 
 +__In generale non sappiamo quante sono le righe della **tabella** risultato della query__. 
 + 
 +La query scritta sopra avrà il seguente risultato: 
 +^id^email^ 
 +|2|lollo234@gmail.com| 
 + 
 +E' una **tabella** con due colonne e una riga. 
 + 
 +Una query può produrre una tabella con **zero righe**. Può accadere sia quando la tabella è vuota sia quando le condizioni del WHERE non vengono soddisfatte da nessua riga. 
 + 
 +===== Query di selezione nel PHP ===== 
 + 
 +Per lanciare una SELCT usando il PHP, bisogna utilizzare la funzione **mysqli_query()**. 
 +Prima di eseguire una query si deve aprire la connessione con il server. 
 + 
 +<Code:php linenums:1 | query di selezione con PHP> 
 +//apriamo la connsessione 
 +$link = mysqli_connect('127.0.0.1','root','','utenti'); 
 +//definiamo la query come una stringa 
 +$query = "SELECT id,email FROM utenti"; //selzioniamo per intero le colonne id e email 
 +//lanciamo la query e memorizziamo il risultato 
 +$res=mysqli_query($link,$query); 
 +//se la query va a buon fine dentro $res c'è una tabella 
 +//se la query è scritta male dentro $res c'è false 
 +if(!$res) die('Qualcosa è andato storto'); //die blocca l'esecuzione del codice 
 +//se sono qui la query è scritta bene 
 +if(mysqli_num_rows($res)>1){  
 +    //mysqli_num_rows mi dice quante righe ci sono in $res 
 +    //c'è almeno una riga 
 +    while ($row=mysqli_fetch_assoc($res){ 
 +        //mysqli_fetch_assoc prende l'attuale riga di $res e la inserisce in un array associativo 
 +        //fatto questo si posiziona sulla riga successiva 
 +        //quando le righe sono finite torna false 
 +        echo $row['id'].' '.$row['email']; 
 +        //gli indici dell'array associativo sono i nomi dei campi sulla tabella 
 +    } 
 +} else { 
 +    echo "la query non ha prodotto risultati"; 
 +} 
 +</Code> 
 + 
 +Come detto il risultato di una SELECT è una tabella, quindi in $res c'è una tabella. 
 +Il PHP non può gestire una tabella tutta insieme, quindi si scorre la tabella una riga alla volta e si tratta ogni singola riga come un array associativo. 
 + 
 +La gestione di una query di selezione avviene sempre nello stesso modo, quello che può cambiare è la query stessa, in base alla query ci si può aspettare un numero di risultati più delimitato.
  
php/select_php.1713251533.txt.gz · Ultima modifica: 2024/04/16 07:12 da davidn