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!
php mysql query mysql_fetch_row mysql_fetch_as
Commentami!