Connessione MySQL con PHP

Mattepuffo's logo
Connessione MySQL con PHP

Connessione MySQL con PHP

Ed ecco il mio primo articolo su PHP.

Tratta della classica query a un database MySql.

Do per scontato la connessione al db:

 

<?php // leggi.php
include_once 'config.php';
$link = mysql_connect($host, $user, $password) or die("Non è possibile connettersi al server<br/>");
$conn = mysql_select_db($db, $link) or die("Non è possibile connettersi al db<br/>");
$query = "select * from tabella";
$result = mysql_query($query, $link) or die(mysql_error($link));
while ($riga = mysql_fetch_row($result)) {
echo '<div>' . $riga[0] . '</div>';
echo '<div>' . $riga[1] . '</div>';
echo '<div>' . $riga[2] . '</div>';
echo '<hr />';
}
?>

Le prime tre righe servono per la connessione al database.

Se la connessione è avvenuta con successo viene effettuata la query.

La variabile $result serve per effettuare la query e vedere se è giusta.

Se è sbagliata riporta un errore.

Dopo inizia un ciclio while che serve per stampare tutti i record della query.

Il ciclo continua fino a che non raggiunge la fine.

Se si vuole stampare una sola riga ovviamente il ciclo non serve.

mysql_fetch_row() carica una riga di dati dal risultato associato all'identificativo specificato.

La riga è restituita com un array.

Ogni colonna del risultato è memorizzata in un indice dell'array, partendo dall'indice 0.

La susseguente chiamata a mysql_fetch_row() restituisce la successiva riga nell'intervallo del risultato oppure FALSE se non ci sono più righe.

Le varie $riga[] identificano i vari campi del db.

Poniamo che i campi siano nell'ordine: nome, cognome, eta, email.

In questo caso verranno stampati solo i primi tre: nome, cognome e eta.

Si potrebbe usare anche usare mysql_fetch_assoc:

while ($riga = mysql_fetch_assoc($result)) {
echo '<div>' . $riga['nome'] . '</div>';
echo '<div>' . $riga['cognome'] . '</div>';
echo '<div>' . $riga['eta'] . '</div>';
echo '<hr />';

In questo caso come vedete non usiamo i numeri che corrispondono ai campi, ma i nomi veri e propri.

Io preferisco row.

Altra cosa: io qui ho usato i div e il tag <hr/> (che stampa una riga orizzontale) così ogni risultato viene racchiuso in div e separato da una riga.

Volendo si potrebbe usare una tabella:

echo '<table>';
echo '<thead>';
echo "<th>ID</th>", "<th>Nome</th>", "<th>Cognome</th>", "<th>Eta</td>", "<th>Email</th>";
echo '</thead>';
while ($riga = mysql_fetch_row($result)) {
echo '<tr>';
echo '<td>' . $riga[0] . '</td>';
echo '<td>' . $riga[1] . '</td>';
echo '<td>' . $riga[2] . '</td>';
echo '<td>' . $riga[3] . '</td>';
echo '</tr>';
}
echo '</table>';

Ho messo anche l'intestazione per una rappresentazione più chiara.

Quale metodo usare dipende dai risultati da stampare, dalla struttura del sito, ecc.

A voi la scelta!


Condividi

Commentami!