|
|||||||
|
|
|
![]() |
|
|
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 16: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: 23:40.



















