|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 2007
Messaggi: 505
|
[PHP&mysql]Script per sito con articoli
Ciao a tutti ho creato unp script php che permette di scrivere articoli e salvarli in mysql allora per prima cosa ho creato un file.sql con scritto :
Codice: Codice:
CREATE TABLE authors ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, surname VARCHAR(100) NOT NULL, PRIMARY KEY(id) ); CREATE TABLE articles ( id INT UNSIGNED NOT NULL AUTO_INCREMENT, author_id INT UNSIGNED NOT NULL, title VARCHAR(100) NOT NULL, article TEXT NOT NULL, PRIMARY KEY(id), KEY(author_id) ); Codice PHP: Codice:
?php $mysql = new mysqli('localhost', 'root', '', 'html_it_articles'); if(!$mysql) { die("Errore di connessione al database, impossibile procedere"); } if(isset($_POST['action']) and $_POST['action'] == 'insert') { $mysql->query("INSERT INTO articles VALUES ('', '".$_POST['author']."', '".addslashes($_POST['title'])."', '".addslashes($_POST['article'])."')"); header('Location: index.php'); } $authors = $mysql->query("SELECT id, CONCAT(surname, ' ', name) AS fullname FROM authors ORDER BY surname ASC"); ?> <html> <head> <title>Inserimento articolo</title> </head> <body> <ul> <li><a href="index.php">Lista articoli</a></li> <li><a href="insert.php">Inserisci un articolo</a></li> </ul> <h3>Inserisci un articolo</h3> <form action="" method="post"> <input type="hidden" name="action" value="insert" /> <label>Autore:</label> <select name="author"> <?php while($author = $authors->fetch_assoc()) { echo "<option value=".$author['id'].">".$author['fullname']."</option>"; } ?> </select><br /> <label>Titolo:</label> <input type="text" name="title" size="55"/><br /> <label>Text:</label><br /> <textarea name="article" rows="6" cols="60"></textarea><br /> <input type="submit" value="Salva" /> </form> </body> </html> Codice PHP: Codice:
<?php $mysql = new mysqli('localhost', 'root', '', 'provacast'); if(!$mysql) { die("Errore di connessione al database, impossibile procedere"); } if(!isset($_GET['id'])) { header('Location: index.php'); } $article = $mysql->query(" SELECT AR.id AS id, AR.title AS title, AR.article AS content, CONCAT(AU.surname, ' ', AU.name) AS author FROM articles AR, authors AU WHERE AR.author_id = AU.id AND AR.id = ".$_GET['id'])->fetch_assoc(); ?> <html> <head> <title>Articolo (<?php echo $article['id']; ?>)</title> </head> <body> <ul> <li><a href="index.php">Lista articoli</a></li> <li><a href="insert.php">Inserisci un articolo</a></li> </ul> <h3><?php echo $article['title']; ?></h3> <i><?php echo $article['author']; ?></i> <p> <?php echo $article['content']; ?> </p> </body> </html> Codice:
Codice PHP: <?php $limit = 5; // articoli per pagina $mysql = new mysqli('localhost', 'root', '', 'provacast'); if(!$mysql) { die("Errore di connessione al database, impossibile procedere"); } $result = $mysql->query("SELECT COUNT(*) AS tot FROM articles")->fetch_assoc(); $page = isset($_GET['p']) ? $_GET['p'] : 1; $totals = $result['tot']; $totals_pages = ceil($totals / $limit); $articles = $mysql->query(" SELECT AR.id AS id, AR.title AS title, CONCAT(SUBSTR(AR.article, 1, 200), ' ...') AS content, CONCAT(AU.surname, ' ', AU.name) AS author FROM articles AR, authors AU WHERE AR.author_id = AU.id ORDER BY id DESC LIMIT ".(($page - 1) * $limit).",".$limit); ?> <html> <head> <title>Articoli</title> </head> <body> <ul> <li><a href="index.php">Lista articoli</a></li> <li><a href="insert.php">Inserisci un articolo</a></li> </ul> <p>Articoli totali: <?php echo $totals; ?></p> <table width="500px"> <?php while($article = $articles->fetch_assoc()) { printf('<tr> <td>%d. <a href="show.php?id=%d">%s</a> (%s) </td> </tr> <tr> <td><p>%s</p></td> </tr> <tr> <td><hr /></td> </tr>', $article['id'], $article['id'], $article['title'], $article['author'], $article['content'] ); } ?> </table> <p>Pagina <?php echo $page; ?> di <?php echo $totals_pages; ?> <br /> <?php if($page - 1 > 0) { echo '<a href="?p='.($page - 1).'">< prev</a> | '; }else { echo '< prev | '; } if($page + 1 <= $totals_pages) { echo '<a href="?p='.($page + 1).'">next ></a>'; }else { echo 'next >'; } ?> </p> </body> </html> Ultima modifica di MasterDany : 29-01-2008 alle 15:39. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Dec 2007
Messaggi: 505
|
vi riporto la query sql:
Codice:
-- phpMyAdmin SQL Dump -- version 2.9.1.1 -- http://www.phpmyadmin.net -- -- Host: localhost -- Generato il: 04 Feb, 2008 at 05:10 PM -- Versione MySQL: 5.0.27 -- Versione PHP: 5.2.0 -- -- Database: `provacast` -- -- -------------------------------------------------------- -- -- Struttura della tabella `articles` -- CREATE TABLE `articles` ( `id` int(10) unsigned NOT NULL auto_increment, `author_id` int(10) unsigned NOT NULL, `title` varchar(100) NOT NULL, `article` text NOT NULL, PRIMARY KEY (`id`), KEY `author_id` (`author_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ; -- -- Dump dei dati per la tabella `articles` -- INSERT INTO `articles` (`id`, `author_id`, `title`, `article`) VALUES (1, 0, 'Daniele', 'sdsadsadf'), (2, 0, 'dfgfdg', 'dfgdgdfg'), (3, 0, 'dfgdg', 'dfgdfgdfg'), (4, 0, 'nbmbm', 'nbmnbmnbmbmnbm'), (5, 0, 'hgjhjhg', 'hgjhgjgh'), (6, 0, 'dsfds', 'dsfsdfsdf'), (7, 0, 'prova', 'dsfsdafsda'), (8, 0, 'uyiyiyijhkjhk', 'uyfivhgkjhnmjhvkjnmnmnbmbm'), (9, 0, 'vbgnvb', 'vbnvnvb'); -- -------------------------------------------------------- -- -- Struttura della tabella `authors` -- CREATE TABLE `authors` ( `id` int(10) unsigned NOT NULL auto_increment, `name` varchar(100) NOT NULL, `surname` varchar(100) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -- -- Dump dei dati per la tabella `authors` -- -- -------------------------------------------------------- -- -- Struttura della tabella `news` -- CREATE TABLE `news` ( `id` int(5) unsigned NOT NULL auto_increment, `titolo` varchar(255) NOT NULL, `testo` text NOT NULL, `data` int(11) default NULL, `autore` varchar(50) default NULL, `mail` varchar(50) default NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -- -- Dump dei dati per la tabella `news` --
__________________
Giochi:Fallout 3,Civilitation IV,Call of Duty-World at War,Far Cry 2,Crysis,Age of Empires III. BLOG Non ricordo niente ma non lo dimenticherò mai |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:06.