Come ottenere un record da una tabella del database? Una tabella è l’astrazione di un concetto reale e fa da contenitore per più elementi. Un esempio tipico in un database è la tabella degli utenti dove ogni record contiene le informazioni di un utente registrato.

PHP select, approfondimenti e ripasso PHP

Tipicamente ogni record è contraddistinto da un campo identificativo, chiamato chiave primaria. Spesso questa chiave primaria è un numero intero “autoincrementale”, il che significa, che ogni volta che un record viene aggiunto, viene assegnato a quel record un numero intero diverso e più grande dei valori assegnati precedentemente. Non è sempre così, ma approfondiremo questo punto un’altra volta.

Ogni record è composto da più campi che contraddistinguono le proprietà del record. Per esempio un record utente potrebbe avere i campi id (chiave primaria), nome, cognome, email e password.

Esistono più tipi di database, ma iniziamo considerando i database relazionali. Per dialogare con questo tipo di database si utilizza il linguaggio SQL.

Vediamo un esempio di query (richiesta al database) per effettuare una select. Il comando select permette di recuperare uno o più record da una determinata tabella.

SELECT id, firstname, lastname FROM MyGuests

In questo caso otterremo i campi id, firstname e lastname dalla tabella MyGuests. Per convenzione i comandi SQL vengono scritti in maiuscolo.

Esistono diversi tipi di database relazionali (DBRM), come MySql oppure PostgreSQL. Il più utilizzato, specialmente da chi si affaccia alla programmazione PHP e da chi non ha particolari necessità specifiche è MySql.

Vediamo come eseguire una query select con PHP

Per interagire con il database, PHP ha due librerie, MSQLi e PDO. La prima è specifica per MySql, la seconda permette la connessione con diversi DBRMs.  In questo esempio vediamo come effettuare un comando select con MSQLi.

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    echo "<table><tr><th>ID</th><th>Name</th></tr>";
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "<tr><td>".$row["id"]."</td><td>".$row["firstname"]." ".$row["lastname"]."</td></tr>";
    }
    echo "</table>";
} else {
    echo "0 results";
}
$conn->close();
?>

L’esempio è molto semplice. Nella prima parte effettuiamo la connessione al database. Dopodiché effettuiamo la query e ne salviamo il risultato nella variabile $result, che diventerà un array. Ogni elemento dell’array sarà a sua volta un array i cui elementi avranno come indice il nome del campo del db e come valore il corrispondente del record.

A questo punto i record vengono stampati in una tabella html. Un ciclo while legge ogni elemento dell’array $results e ne stampa il contenuto in una riga della tabella, infine, si chiude la connessione al database.

 

Hai mai pensato di imparare Laravel? Abbiamo un Video Corso che potrebbe interessarti.