trovato nei tutorial! :beer:
--------
salve.. vi faccio l'elenco di qualche pagina di un semplicissimo forum che ho..
per cominciare questà è la struttura del db per il forum
poi c'è index.php (che visualizza le categorie)
poi c'è forum.php (che visualizza le sezioni delle categorie)
poi c'è new.php (che è la pagina epr inserire una discussione)
poi c'è reply.php (pagina epr rispondere ad un messaggio
poi c'è thread.php (mostra i messaggi postati)
poi c'è config.php (normale pagina di connessione al db)
-------------------
io avrei bisogno di suddividere per pagine la lista delle discussioni (10 per pagina) e dei messaggi in una discussione (sempre 10 o 15 per pagina)... qualcuno mi aiuta, non so come fare.. :berto:
poi avrei bisogno di una pagina ch mi permettesse di cancellare i messaggi e/o modificare...
qualche buon anima è disposta ad aiutrami perhcè non so proprio come fare ste cosette!
grazie!
--------
salve.. vi faccio l'elenco di qualche pagina di un semplicissimo forum che ho..
per cominciare questà è la struttura del db per il forum
Codice:
-- --------------------------------------------------------
--
-- Struttura della tabella `forum_lite_main`
--
CREATE TABLE `forum_lite_main` (
`id` int(11) NOT NULL auto_increment,
`titolo` varchar(255) NOT NULL default '',
`img` varchar(255) NOT NULL default '',
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Dump dei dati per la tabella `forum_lite_main`
--
INSERT INTO `forum_lite_main` (`id`, `titolo`, `img`) VALUES (1, 'prova forum', 'immagine.gif'),
(2, 'prova 2', '');
-- --------------------------------------------------------
--
-- Struttura della tabella `forum_lite_thread`
--
CREATE TABLE `forum_lite_thread` (
`id` int(11) NOT NULL auto_increment,
`topic_id` varchar(255) NOT NULL default '',
`data` varchar(255) NOT NULL default '',
`autore` varchar(255) NOT NULL default '',
`titolo` varchar(255) NOT NULL default '',
`testo` text NOT NULL,
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
--
-- Dump dei dati per la tabella `forum_lite_thread`
--
INSERT INTO `forum_lite_thread` (`id`, `topic_id`, `data`, `autore`, `titolo`, `testo`) VALUES (1, '1', '27/11/2006', 'torrone', 'prova post', 'prova messaggio 1');
-- --------------------------------------------------------
--
-- Struttura della tabella `forum_lite_topics`
--
CREATE TABLE `forum_lite_topics` (
`id` int(11) NOT NULL auto_increment,
`forum_id` varchar(255) NOT NULL default '',
`data` varchar(255) NOT NULL default '',
`autore` varchar(255) NOT NULL default '',
`titolo` varchar(255) NOT NULL default '',
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
--
-- Dump dei dati per la tabella `forum_lite_topics`
--
INSERT INTO `forum_lite_topics` (`id`, `forum_id`, `data`, `autore`, `titolo`) VALUES (1, '1', '27/11/2006', 'torrone', 'prova post');
poi c'è index.php (che visualizza le categorie)
PHP:
<?php
# Includo il file di configurazione
require("config.php");
# Recupero i forum esistenti
$query = mysql_query("SELECT * FROM forum_lite_main
ORDER BY titolo ASC");
# Stampo il percorso
echo "Forum";
echo "<table border=\"1\" cellpadding=\"1\" cellspacing=\"0\"><tr><td colspan=\"2\"><b><center>Categoria</center></b></td></tr>";
# Stampo la lista di tutti i Forum
while($result = mysql_fetch_array($query))
{
echo "<tr><td width=\"30\" height=\"30\"><img src=\"$result[img]\" \></td><td> <a href=\"forum.php?f=$result[id]\">";
echo "$result[titolo]</a></td></tr>";
}
echo "</table>";
?>
poi c'è forum.php (che visualizza le sezioni delle categorie)
PHP:
<?php
require("config.php");
# Recupero i topic del forum
$query = @mysql_query("SELECT * FROM forum_lite_topics
WHERE forum_id = '" . $_GET[f] . "' ORDER BY data ASC");
# Recupero il titolo del forum per il percorso
$query2 = @mysql_query("SELECT titolo FROM forum_lite_main
WHERE id = '" . $_GET[f] . "'");
# Recupero i messaggi nel topic
$query3 = @mysql_query("SELECT MAX(topic_id) FROM
forum_lite_thread");
$result2 = @mysql_fetch_array($query2);
$result3 = @mysql_fetch_array($query3);
# Stampo il percorso
echo "<a href=\"index.php\">Forum</a> »
$result2[titolo]<br><br>";
echo "<table border=\"1\" cellpadding=\"2\" cellspacing=\"0\"><tr><td><b><center>Discussione</center></b></td><td><b><center>Autore</center></b></td></tr>";
# Stampo a video tutti i topic del Forum selezionato
while($result = @mysql_fetch_array($query))
{
echo "<tr><td><a href=\"thread.php?f=$_GET[f]&t=$result[id]\">";
echo "$result[titolo]</a></td>";
echo "<td><i><center>$result[autore]</center></i></td></tr>";
}
echo "</table>";
# Recupero il valore più alto di topic_id e lo incremento di uno
# per creare il link nuovo topic
$topic_id = $result3[topic_id]+1;
echo "<p>[ <a href=\"new.php?f=$_GET[f]&t=$topic_id\">";
echo "Nuovo topic</a> ]";
?>
poi c'è new.php (che è la pagina epr inserire una discussione)
PHP:
<?php
require("config.php");
# Recupero il titolo del forum dal DB
$query2 = @mysql_query("SELECT * FROM forum_lite_main
WHERE id = '" . $_GET[f] . "'");
$result2 = @mysql_fetch_array($query2);
# Stampo il percorso
echo "<a href=\"index.php\">Main</a> »";
echo "<a href=\"forum.php?f=$_GET[f]\">";
echo "$result2[titolo]</a> » Nuovo topic";
# Se il valore di cmd è false stampo il form a video
if ($_POST[cmd] == FALSE)
{
echo "<form action=\"$REQUEST_URI\" method=\"post\">\n";
echo "<strong>Titolo</strong>:<br>\n";
echo "<input type=\"text\" name=\"titolo\"><br><br>\n\n";
echo "<strong>Nome (o nick)</strong>:<br>\n";
echo "<input type=\"text\" name=\"autore\"><br><br>\n\n";
echo "<strong>Messaggio</strong>:<br>\n";
echo "<textarea name=\"testo\" cols=\"50\" rows=\"5\">";
echo "</textarea><br><br>\n\n";
echo "<input type=\"hidden\" name=\"cmd\" value=\"add\">\n";
echo "<input type=\"submit\" value=\"Crea\">\n";
echo "</form>\n";
}
# Se cmd è diverso da false...
else
{
# Verifico che tutti i campi necessari siano stati compilati
if ($_POST[titolo] == FALSE OR $_POST[autore] == FALSE
OR $_POST[testo] == FALSE)
{
echo "<p>Tutti i campi sono obbligatori.";
}
# Se il controllo è ok salvo tutto nel DB
else
{
$_POST[testo] = str_replace("\n", "<br>", $_POST[testo]);
mysql_query("INSERT INTO forum_lite_topics
VALUES ('',
'" . $_GET[f] . "',
'" . date("d/m/Y") . "',
'" . $_POST[autore] . "',
'" . $_POST[titolo] . "')");
mysql_query("INSERT INTO forum_lite_thread
VALUES ('',
'" . $_GET[t] . "',
'" . date("d/m/Y") . "',
'" . $_POST[autore] . "',
'" . $_POST[titolo] . "',
'" . $_POST[testo] . "')");
echo "<p>Il tuo topic è stato inviato con successo.";
}
}
?>
poi c'è reply.php (pagina epr rispondere ad un messaggio
PHP:
<?php
require("config.php");
# Recupero il titolo del forum
$query2 = mysql_query("SELECT titolo FROM forum_lite_main
WHERE id = '" . $_GET[f] . "'");
# Recupero il titolo del topic
$query3 = mysql_query("SELECT titolo FROM forum_lite_topics
WHERE forum_id = '" . $_GET[f] . "'");
$result2 = mysql_fetch_array($query2);
$result3 = mysql_fetch_array($query3);
# Stampo il percorso
echo "<a href=\"index.php\">Main</a> »";
echo "<a href=\"forum.php?f=$_GET[f]\">$result2[titolo]</a> »";
echo "<a href=\"thread.php?f=$_GET[f]&t=$_GET[t]\">";
echo "$result3[titolo]</a> » Rispondi";
# Se il valore di cmd è false stampo il form a video
if ($_POST[cmd] == FALSE)
{
echo "<form action=\"$REQUEST_URI\" method=\"post\">\n";
echo "<strong>Titolo</strong>: (facoltativo)<br>\n";
echo "<input type=\"text\" name=\"titolo\"><br><br>\n\n";
echo "<strong>Nome (o nick)</strong>:<br>\n";
echo "<input type=\"text\" name=\"autore\"><br><br>\n\n";
echo "<strong>Messaggio</strong>:<br>\n";
echo "<textarea name=\"testo\" cols=\"50\" rows=\"5\">";
echo "</textarea><br><br>\n\n";
echo "<input type=\"hidden\" name=\"cmd\" value=\"add\">\n";
echo "<input type=\"submit\" value=\"Rispondi\">\n";
echo "</form>\n";
}
# Se cmd è diverso da false...
else
{
# Verifico che tutti i campi necessari siano stati compilati
if ($_POST[autore] == FALSE OR $_POST[testo] == FALSE)
{
echo "<p>Nome e messaggio sono obbligatori.";
}
# Se il controllo è ok salvo tutto nel DB
else
{
$_POST[testo] = str_replace("\n", "<br>", $_POST[testo]);
mysql_query("INSERT INTO forum_lite_thread
VALUES ('',
'" . $_GET[t] . "',
'" . date("d/m/Y") . "',
'" . $_POST[autore] . "',
'" . $_POST[titolo] . "',
'" . $_POST[testo] . "')");
echo "<p>Il tuo messaggio è stato inviato con successo.";
}
}
?>
poi c'è thread.php (mostra i messaggi postati)
PHP:
<?php
require("config.php");
# Recupero i messaggi del thread
$query = mysql_query("SELECT * FROM forum_lite_thread
WHERE topic_id = '" . $_GET[t] . "' ORDER BY data ASC");
# Recupero il titolo del forum
$query2 = mysql_query("SELECT titolo FROM forum_lite_main
WHERE id = '" . $_GET[f] . "'");
# Recupero il titolo del topic
$query3 = mysql_query("SELECT titolo FROM forum_lite_topics
WHERE forum_id = '" . $_GET[f] . "'");
$result2 = mysql_fetch_array($query2);
$result3 = mysql_fetch_array($query3);
# Stampo il percorso
echo "<a href=\"index.php\">Main</a> »";
echo "<a href=\"forum.php?f=$_GET[f]\">$result2[titolo]</a> »";
echo "$result3[titolo]";
# Uso il ciclo while per stampare tutti i messaggi del thread
while($result = mysql_fetch_array($query))
{
echo "<hr><div style=\"display: block\"><strong>";
echo "$result[titolo]</strong>\n";
echo "<i>di $result[autore]</i><br>$result[testo]</div>\n";
}
# Stampo a video il link per rispondere alla discussione
echo "<hr><p><a href=\"reply.php?f=$_GET[f]&t=$_GET[t]\">";
echo "Rispondi</a>";
?>
poi c'è config.php (normale pagina di connessione al db)
PHP:
<?php
# Host
$mysql['host'] = " ";
# Username
$mysql['user'] = " ";
# Password
$mysql['pass'] = " ";
# Nome del DB
$mysql['name'] = " ";
# Titolo della nostra Applicazione
$title = "Forum";
# Funzioni di connessione al nostro DB MySQL
@mysql_connect($mysql['host'], $mysql['user'], $mysql['pass']);
@mysql_select_db($mysql['name']);
echo "<p>$title</p>\n";
?>
-------------------
io avrei bisogno di suddividere per pagine la lista delle discussioni (10 per pagina) e dei messaggi in una discussione (sempre 10 o 15 per pagina)... qualcuno mi aiuta, non so come fare.. :berto:
poi avrei bisogno di una pagina ch mi permettesse di cancellare i messaggi e/o modificare...
qualche buon anima è disposta ad aiutrami perhcè non so proprio come fare ste cosette!
grazie!