1. Andate su PhMyAdmin
e inserite i seguenti codici SQL nel database:

Codice:
CREATE TABLE `articoli` (
  `art_id` int(11) NOT NULL auto_increment,
  `art_autore` varchar(40) NOT NULL default '',
  `art_titolo` varchar(100) NOT NULL default '',
  `art_articolo` text NOT NULL,
  `art_data` date NOT NULL default '0000-00-00',
  PRIMARY KEY  (`art_id`)
) ;
e...

Codice:
CREATE TABLE `commenti` (
  `com_id` int(5) NOT NULL auto_increment,
  `com_art` int(11) NOT NULL default '0',
  `com_autore` varchar(40) NOT NULL default '',
  `com_testo` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`com_id`)
);
2. Create il file config.php e inserite il codice:

Codice:
<?
$dbhost = "ip o host in cui avete creato il db (di solito è localhost)";
$dbname = "vostro database";
$dbuser = "username database";
$dbpass = "password database";
$connect = @mysql_connect($dbhost, $dbuser, $dbpass) or die (mysql_error());
@mysql_select_db($dbname) or die (mysql_error());
?>
3. Create il file insert_post.php e inserite il codice:

Codice:
<html>
<head>
<title>Blog: inserimento news</title>
</head>
<body>
<h1>Inserisci un articolo</h1>
<?

//includiamo il file di configurazione
@include "config.php";

//valorizziamo le variabili con i dati ricevuti dal form
if(isset($_POST['submit'])){
  if(isset($_POST['autore'])){
    $autore = addslashes($_POST['autore']);
  }
  if(isset($_POST['titolo'])){
    $titolo = addslashes($_POST['titolo']);
  }
  if(isset($_POST['articolo'])){
    $articolo = addslashes($_POST['articolo']);
  }

  // popoliamo i campi della tabella articoli con i dati ricevuti dal form
  $sql = "INSERT INTO articoli (art_autore, art_titolo, art_articolo, art_data) VALUES ('$autore', '$titolo', '$articolo', now())";

  // se l'inserimento ha avuto successo inviamo una notifica
  if (@mysql_query($sql) or die (mysql_error())){
    echo "Articolo inserito con successo.";
  } 
}else{
  // se non sono stati inviati dati dal form mostriamo il modulo per l'inserimento
  ?>
<form action="insert_post.php" method="post">
Autore:<br>
<input name="autore" type="text" size="20"><br>
Titolo:<br>
<input name="titolo" type="text" size="30"><br>
Articolo:<br>
<textarea name="articolo" cols="40" rows="10"></textarea><br>
<input name="submit" type="submit" value="Invia">
</form>
  <?
}
?>
</body>
</html>
4. Create il file index.php e inserite il codice:

Codice:
<html>
<head>
<title>Il mio Blog</title>
</head>
<body>
<h1>Un blog in PHP</h1>
<?

// includiamo il file di configurazione
@include "config.php";

// includiamo la pagina contenente il codice per la creazione delle anteprime
@require "anteprima.php";

// estraiamo i dati relativi agli articoli dalla tabella
$sql = "SELECT * FROM articoli ORDER BY art_data DESC";
$query = @mysql_query($sql) or die (mysql_error());

//verifichiamo che siano presenti records
if(mysql_num_rows($query) > 0){
  // se la tabella contiene records mostriamo tutti gli articoli attraverso un ciclo
  while($row = mysql_fetch_array($query)){
    $art_id = $row['art_id'];
    $autore = stripslashes($row['art_autore']);
    $titolo = stripslashes($row['art_titolo']);
    $data = $row['art_data'];
    $articolo = stripslashes($row['art_articolo']);
   
    //valorizziamo una variabili con il link all'intero articolo
    $link = " ..<br><a href=\"articolo.php?id=$art_id\">Leggi tutto</a>";

    echo "<h2>".$titolo."</h2>";
   
    // creaimo l'anteprima che mostra le prime 30 parole di ogni singolo articolo
    // per farlo utilizzo una funzione che vi presenterò più avanti
    echo @[Solo gli utenti registrati possono vedere i link. Clicca qui per registrarti..]eprima($articolo, 30, $link); 
    echo "<br><br>";
   
    // formattiamo la data nel formato europeo
    $data = preg_replace('/^(.{4})-(.{2})-(.{2})$/','$3-$2-$1', $data);

    // stampiamo una serie di informazioni
    echo  "Scritto da <b>". $autore . "</b>";
    echo  "| Articolo postato il <b>" . $data . "</b>";
    echo  "| Commenti: "; 
  
    // mostriamo il numero di commenti relativi ad ogni articolo
    $conta = "SELECT COUNT(com_id) as conta from commenti WHERE com_art = '$art_id'";
    $conto = @mysql_query ($conta);
    $tot = @mysql_fetch_array ($conto);
    echo $sum2 = $tot['conta'];
    echo "<hr>";
  } 
}else{
  // se in tabella non ci sono records...
  echo "Nessun articolo presente.";
}
?>
</body>
</html>
5. Create il file anteprima.php e inserite il codice:

Codice:
<?
function anteprima($testo, $lunghezza, $finale) {
return (count($parole = explode(' ', $testo)) > $lunghezza) ? implode(' ', array_slice($parole, 0, $lunghezza)) . $finale : $testo;
}
?>
6. Create il file articolo.php e inserite il codice:

Codice:
<html>
<head>
<title>Il mio Blog</title>
</head>
<body>
<?
// controlliamo che sia stato inviato un id numerico alla pagina
if(isset($_GET['id'])&&(is_numeric($_GET['id']))){
  // valorizziamo la variabile relativa all'id dell'articolo e includiamo il file di configurazione
  $art_id = $_GET['id'];
  @include "config.php";

  // selezioniamo dalla tabella i dati relativi all'articolo
  $sql = "SELECT art_autore,art_titolo,art_data,art_articolo FROM articoli WHERE art_id='$art_id'";
  $query = @mysql_query($sql) or die (mysql_error());

  // se per quell'id esiste un articolo..
  if(mysql_num_rows($query) > 0){
    // ...estraiamo i dati e mostriamoli a video
    $row = mysql_fetch_array($query) or die (mysql_error());
    $autore = stripslashes($row['art_autore']);
    $titolo = stripslashes($row['art_titolo']);
    $data = $row['art_data'];
    $articolo = stripslashes($row['art_articolo']);
    echo "<h2>".$titolo."</h2>" . $articolo . "<br><br>";
    $data = preg_replace('/^(.{4})-(.{2})-(.{2})$/','$3-$2-$1', $data);
    echo "Scritto da <b>". $autore . "</b>";
    echo "| Articolo postato il <b>" . $data . "</b>"; 
  
    // link alla pagina dei commenti  
    echo "<br><a href=\"insert_comment.php?id=$art_id\">Invia un commento</a><br><br>";

    // visualizzianmo tutti i commenti
    $sql_com = "SELECT com_autore, com_testo FROM commenti WHERE com_art='$art_id'";
    $query_com = @mysql_query($sql_com) or die (mysql_error());
    if(mysql_num_rows($query_com) > 0){
      echo "Commenti:<br>";
      while($row_com = mysql_fetch_array($query_com)){
        $com_autore = stripslashes($row_com['com_autore']);
        $com_testo = stripslashes($row_com['com_testo']);
        echo $com_testo . "<br>";
        echo "Inserito da <b>". $com_autore . "</b>";
        echo "<hr>"; 
      }
    }
  }
}else{
  // se per l'id non esiste un articolo..
  echo "Nessun articolo trovato.";
}
?>
7. Create il file insert_comment.php e inserite il codice:

Codice:
<html>
<head>
<title>Blog: inserimento commenti</title>
</head>
<body>
<h1>Inserisci un tuo commento:</h1>
<?
// includiamo il file di configurazione
@include "config.php";

// se sono stati inviati dei parametri valorizziamo con essi le variabili
// per l'inserimento nella tabella
if(isset($_POST['submit'])){
  if(isset($_POST['autore'])){
    $autore = addslashes($_POST['autore']);
  }
  if(isset($_POST['testo'])){
    $testo = addslashes($_POST['testo']);
  }
  if(isset($_POST['id'])){
    $com_art = addslashes($_POST['id']);
  }

  // popoliamo i campi della tabella commenti con i dati ricevuti dal form
  $sql = "INSERT INTO commenti (com_autore, com_testo, com_art) VALUES ('$autore', '$testo', '$com_art')";
  
  // se l'inserimento ha avuto successo inviamo una notifica
  if (@mysql_query($sql) or die (mysql_error())){
    echo "Commento inserito con successo.";
  } 
}else{
  //controlliamo che l'id dell'articolo sia realamente esistente
  if(isset($_GET['id'])&&(is_numeric($_GET['id']))){
    $com_art = addslashes($_GET['id']);
    $sql = "SELECT art_id FROM articoli WHERE art_id='$com_art'";
    $query = @mysql_query($sql) or die (mysql_error());
    if(mysql_num_rows($query) > 0){
      // se non sono stati inviati dati dal form mostriamo il modulo per l'inserimento
      ?>
<form action="insert_comment.php" method="post">
Autore:<br>
<input name="autore" type="text" size="20"><br>
Testo:<br>
<textarea name="testo" cols="40" rows="10"></textarea><br>
<input name="id" type="hidden" value="<? echo $com_art; ?>">
<input name="submit" type="submit" value="Invia">
</form>
      <?
      // se l'id dell'articolo non esiste o non è numerico inviamo delle notifiche
    }else{
      echo "Impossibile inserire un commento.";
    }
  }else{
    echo "Impossibile inserire un commento.";
  }
}
?>
</body>
</html>
Spero di esservi stato utile

Fonte: Web