Iniziamo il nostro progetto di un sito web dinamico interfacciato con un database MySQL.

Per prima cosa occorre creare una pagina index.php che ci consente di scegliere il layout opportuno tra due tipi, in base al parametro q passato nell'URL.

<html>
<head>
	<title>Tesina</title>
	<link rel="stylesheet" type="text/css" href="/portale/./css/style.css">
	<style>
		#mappa li {
    width: 30%;
    float: left;
    background: #ff0000;
    margin: 0 10px 10px 0;
	list-style: none;
}
#mappa li img {
    width: 100%;
    height: 200px;
}
#mappa li p {
    text-align: center;
    font-size: x-large;
}
</style>
</head>
<body>
        
		<?php
        	$q=isset($_GET['q'])?$_GET['q']:"mappa";
            echo $q;
      if($q=="mappa"){
      	include('./inc/'.$q.'.php');
        }
        else{
            include('./inc/main-wrap.php');
           }
           ?>
</body>
</html>     

Ovviamente in questo codice la formattazione css deve ritenersi di esempio ed inoltre va inserita nel file CSS presente nel tag link.

 


I due tipi di layout dell'esempio sono contenuti nel file mappa.php e nel file main-wrap.php () entrambi contenuti nella cartella inc.

Di seguito un esempio di file mappa.php:

<div id="content">

<?php
echo "<ul id=\"mappa\">";
echo "<li><a href=\"./index.php?q=italiano\"><img src=\"./img/materia1.jpg\"><p>Materia1</p> </a></li> ";
echo "<li><a href=\"./index.php?q=italiano\"><img src=\"./img/materia1.jpg\"><p>Materia2</p></a></li> ";
echo "<li><a href=\"./index.php?q=italiano\"><img src=\"./img/materia1.jpg\"><p>Materia3</p> </a></li> ";
echo "<li><a href=\"./index.php?q=italiano\"><img src=\"./img/materia1.jpg\"><p>Materia4</p> </a></li> ";
echo "<li><a href=\"./index.php?q=italiano\"><img src=\"./img/materia1.jpg\"><p>Materia5</p> </a></li> ";
echo "<li><a href=\"./index.php?q=italiano\"><img src=\"./img/materia1.jpg\"><p>Materia6</p> </a></li> ";
echo "<li><a href=\"./index.php?q=italiano\"><img src=\"./img/materia1.jpg\"><p>Materia7</p> </a></li> ";
echo "</ul>";
?>
</div>

Connessione con un database my_sql in modo procedurale

Utilizzando alcune funzioni php è possibile connettere un sito web con un database my_sql. In questo esempio abbiamo un database creato nello stesso server del sito, con accesso senza password. Per effettuare la connessione utilizziamo la funzione php mysqli_connct con 4 parametri. La prima parte dello script ci consente di tentare la connessione al server del database, mentre la seconda parte ci permette di controllare l'esito della connessione ed eventualmente di stampare un messaggio di errore. Una volta verificato il codice bisogna eliminare il blocco else{...}

<?php
$servername="localhost";
$username="root";
$password="";
$db="nomeDB";
$conn=mysqli_connect($servername,$username,$password,$db);
// Check connection
if (mysqli_connect_errno())
  {
  echo "Connessione Fallita: " . mysqli_connect_error();
  }
  else
  {
  echo "Connessione Riuscita!!";
  }	  
?>

PHP Selezionare dati da un database MySQL

Adesso vediamo come estrarre dei dati da una tabella del nostro database utilizzando una query assegnata alla variabile php $sql, ricordando di modificare il nome della tabella con uno presente nel vostro database, il cui risultato viene memorizzato nella variabile $result, dopo aver eseguito la funzione mysqli_query. Dopo aver effettuato il controllo sul numero di record ottenuto dalla query, se questi sono superiori a zero (esiste quindi almeno un record) possiamo effettuare la stampa dei dati a noi necessari e nel formato a noi conveniente. Nell'esempio si utilizza l'istruzione $row = mysqli_fetch_assoc($result) per estrarre ad ogni ciclo while un record presente nel risultato ottenuto dalla query. 

<?php

$sql = "SELECT * FROM Table";
$result = mysqli_query($conn, $sql);

if (mysqli_num_rows($result) > 0) {
    // output data of each row
    while($row = mysqli_fetch_assoc($result)) {
        echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
    }
} else {
    echo "0 results";
}

mysqli_close($conn);
?>

Se volessi scrivere in una pagina html il risultato come dei blocchi <p> basta modificare l'istruzione echo dentro il ciclo while in questo modo: 

  •  echo "<p>" . $row["titolo"]. "</p><p>" . $row["corpo"]. "</p><p> " . $row["codice"]. "</p>";

Aggiornamenti in corso......