php:select_php
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente | ||
| php:select_php [2024/04/16 07:10] – [Sintassi MySql] davidn | php: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 | ||
| </ | </ | ||
| + | * **listaCampi**: | ||
| + | * **nomeTab**: | ||
| + | * **condizioni**: | ||
| + | |||
| + | E' prassi scrivere le parole dell' | ||
| + | |||
| + | |||
| + | 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. | ||
| + | |||
| + | < | ||
| + | SELECT id,email FROM utenti | ||
| + | WHERE username = ' | ||
| + | </ | ||
| + | |||
| + | **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. | ||
| + | |||
| + | < | ||
| + | //apriamo la connsessione | ||
| + | $link = mysqli_connect(' | ||
| + | //definiamo la query come una stringa | ||
| + | $query = " | ||
| + | //lanciamo la query e memorizziamo il risultato | ||
| + | $res=mysqli_query($link, | ||
| + | //se la query va a buon fine dentro $res c'è una tabella | ||
| + | //se la query è scritta male dentro $res c'è false | ||
| + | if(!$res) die(' | ||
| + | //se sono qui la query è scritta bene | ||
| + | if(mysqli_num_rows($res)> | ||
| + | // | ||
| + | //c'è almeno una riga | ||
| + | while ($row=mysqli_fetch_assoc($res){ | ||
| + | // | ||
| + | //fatto questo si posiziona sulla riga successiva | ||
| + | //quando le righe sono finite torna false | ||
| + | echo $row[' | ||
| + | //gli indici dell' | ||
| + | } | ||
| + | } else { | ||
| + | echo "la query non ha prodotto risultati"; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | 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.1713251449.txt.gz · Ultima modifica: 2024/04/16 07:10 da davidn
