Creare un forum in php

angel

Utente Attivo
2 Nov 2009
109
0
0
Ciao a tutti....
Ho letto l'articolo riguardante come creare un forum ma ci sono alcune cose che non vanno....
sapete darmi una mano....^^
se si posto i codici della tabella...
 

angel

Utente Attivo
2 Nov 2009
109
0
0
ok....
mi spiego...
ho creato una tabella cosi..
PHP:
CREATE TABLE `forum_sezioni`(
            `id_sezione` INT(11) NOT NULL AUTO_INCREMENT,
            `titolo_sezione` VARCHAR(255) NOT NULL DEFAULT '',
             PRIMARY KEY (`id_sezione`)
)TYPE=MyISAM AUTO_INCREMENT=1;
e un altra cosi
PHP:
CREATE TABLE `forum_discussione`(
            `id_discussione` INT(11) NOT NULL AUTO_INCREMENT,
            `id_sezione` VARCHAR(255) NOT NULL DEFAULT '',
            `data_discussione` VARCHAR(255) NOT NULL DEFAULT '',
            `autore_discussione` VARCHAR(255) NOT NULL DEFAULT '',
            `titolo_discussione` VARCHAR(255) NOT NULL DEFAULT '',
            `testo_discussione` text NOT NULL,
PRIMARY KEY (`id_discussione`)
)TYPE=MyISAM AUTO_INCREMENT=1
ma non so come fare ha memorizzare i messaggi di risposta per ogni discussione...

hai consigli su come sistemare al meglio le tabelle...
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Ti consiglio di creare una tabella forum_lite_replies in cui memorizzi l'ID del thread e tutti i dati della risposta. Poi le visualizzi insieme al messaggio principale e nella pagina della visione di un thread inserisci il link alla risposta.
 

angel

Utente Attivo
2 Nov 2009
109
0
0
potresti farmi un esempio di come creare questa tabella....
come al solito dovrebbe salvare
autore,data,id_discussione,testo,eccc...
 

angel

Utente Attivo
2 Nov 2009
109
0
0
PHP:
CREATE TABLE `forum_sezioni`(
            `id_sezione` INT(11) NOT NULL AUTO_INCREMENT,
            `titolo_sezione` VARCHAR(255) NOT NULL DEFAULT '',
             PRIMARY KEY (`id_sezione`)
)TYPE=MyISAM AUTO_INCREMENT=1;  

CREATE TABLE `forum_discussione`(
            `id_discussione` INT(11) NOT NULL AUTO_INCREMENT,
            `id_sezione` VARCHAR(255) NOT NULL DEFAULT '',
            `data_discussione` VARCHAR(255) NOT NULL DEFAULT '',
            `autore_discussione` VARCHAR(255) NOT NULL DEFAULT '',
            `titolo_discussione` VARCHAR(255) NOT NULL DEFAULT '',
            `testo_discussione` text NOT NULL,
PRIMARY KEY (`id_discussione`)
)TYPE=MyISAM AUTO_INCREMENT=1 

CREATE TABLE `forum_risposta`(
            `id_risposta` INT(11) NOT NULL AUTO_INCREMENT,
            `id_discussione` VARCHAR(255) NOT NULL DEFAULT '',
            `data_risposta` VARCHAR(255) NOT NULL DEFAULT '',
            `autore_risposta` VARCHAR(255) NOT NULL DEFAULT '',
            `oggetto_risposta` VARCHAR(255) NOT NULL DEFAULT '',
            `messaggio_risposta` VARCHAR(255) NOT NULL DEFAULT '',
             PRIMARY KEY (`id_risposta`)
)TYPE=MyISAM AUTO_INCREMENT=1;
tipo cosi...


ma e sorto un problema cerco di spiegarti...
ho un problema con creare discussione nelle sezioni....
ho 3 sezioni

sez1
sez2
sez3

nella prima sezione ci sono 2 discussioni
nella 3 ce ne 1
per vedere una discussione bisogna andare nella pagina

thread.php?sez=1&discu=1
sez e la sezione
discu e la discussione

fino ha qui ci 6...
il problema e nella tabella forum_discussione dove ce (id_discussione)
vorrei che aumentare di uno se già esiste quello di prima ma in base ad id_sezione
--------------------------------------
id_discussione--------------id_sezione
1------------------------------------1
2------------------------------------1
3------------------------------------1
1------------------------------------3
2------------------------------------3
1------------------------------------2
3------------------------------------3
--------------------------------------

Vorrei che aumentasse in base alla sezione e possibile fare....^^
cosa devo cambiare nelle tabelle
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
La vedo complicata, comunque non vedo perché ti preoccupi. Nessun forum del mondo usa il sistema da te adottato, per ogni topic c'è un ID univoco. Altrimenti anche nelle risposte dovresti salvare l'ID di sezione, non pensi sia scomodo?
 

angel

Utente Attivo
2 Nov 2009
109
0
0
hai ragione devo salvare l'id della sezione per poi mostrare nel index il numero dei messaggi....
in totale in quella determinata sezione...

ma per quello che ti dicevo e possibile fare o no....

per ora pensavo di fare cosi
ma per quella cosa non so come sistemare idee...
PHP:
CREATE TABLE `forum_sezioni`(
            `id_sezione` INT(11) NOT NULL AUTO_INCREMENT,
            `titolo_sezione` VARCHAR(255) NOT NULL DEFAULT '',
             PRIMARY KEY (`id_sezione`)
)TYPE=MyISAM AUTO_INCREMENT=1;  

CREATE TABLE `forum_discussione`(
            `id_discussione` INT(11) NOT NULL AUTO_INCREMENT,
            `id_sezione` VARCHAR(255) NOT NULL DEFAULT '',
            `data_discussione` VARCHAR(255) NOT NULL DEFAULT '',
            `autore_discussione` VARCHAR(255) NOT NULL DEFAULT '',
            `titolo_discussione` VARCHAR(255) NOT NULL DEFAULT '',
            `testo_discussione` text NOT NULL,
PRIMARY KEY (`id_discussione`)
)TYPE=MyISAM AUTO_INCREMENT=1 

CREATE TABLE `forum_risposta`(
            `id_risposta` INT(11) NOT NULL AUTO_INCREMENT,
            `id_discussione` VARCHAR(255) NOT NULL DEFAULT '',
            `id_sezione` VARCHAR(255) NOT NULL DEFAULT '',
            `data_risposta` VARCHAR(255) NOT NULL DEFAULT '',
            `autore_risposta` VARCHAR(255) NOT NULL DEFAULT '',
            `oggetto_risposta` VARCHAR(255) NOT NULL DEFAULT '',
            `messaggio_risposta` VARCHAR(255) NOT NULL DEFAULT '',
             PRIMARY KEY (`id_risposta`)
)TYPE=MyISAM AUTO_INCREMENT=1;  

CREATE TABLE `forum_utenti`(
            `id_utenti` INT(11) NOT NULL AUTO_INCREMENT,
            `nome_utenti` VARCHAR(255) NOT NULL DEFAULT '',
            `password_utenti` VARCHAR(255) NOT NULL DEFAULT '',
            `data_utenti` VARCHAR(255) NOT NULL DEFAULT '',
            `mail_utenti` VARCHAR(255) NOT NULL DEFAULT '',
            `attivo_utenti` enum('0','1') NOT NULL default '0',
             PRIMARY KEY (`id_utenti`)
)TYPE=MyISAM AUTO_INCREMENT=1;
 
Ultima modifica:

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Ti ho già detto che solo con il database sarebbe impossibile, perché non gestisce correttamente gli indici. Ti servirebbe una libreria in PHP che simula la funzione AUTO_INCREMENT e gestisce gli ID come dici tu.

Ma ti ripeto la mia domanda: a che cosa ti serve? Non so se te ne rendi conto, ma è una cosa totalmente inutile e nessun CMS usa il sistema che vorresti adottare, né lo farà mai. Perché? Semplicemente perché è scomodissimo!
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
No, un momento, non capisco una cosa. Io mi riferisco al fatto che tu voglia far partire per ogni categoria l'ID del topic da uno. Ma capisci che così complichi solo il codice? Altro che renderlo più pulito, dovrai aggiungere qualche decina di righe senza senso! Probabilmente, in futuro, se qualcuno vedesse ciò che hai scritto ti riderebbe in faccia.
 

angel

Utente Attivo
2 Nov 2009
109
0
0
secondo te come devo fare per impostare tutte le tabelle per il forum...
 

angel

Utente Attivo
2 Nov 2009
109
0
0
sel senso come dici tu di fare le tabelle....
seguendo il tuo metodo...
 

angel

Utente Attivo
2 Nov 2009
109
0
0
secondo te va bene cosi....
secondo te potrebbe andare.....:mavieni:
PHP:
CREATE TABLE `forum_sezioni`(
            `id_sezione` INT(11) NOT NULL AUTO_INCREMENT,
            `titolo_sezione` VARCHAR(255) NOT NULL DEFAULT '',
             PRIMARY KEY (`id_sezione`)
)TYPE=MyISAM AUTO_INCREMENT=1;  

CREATE TABLE `forum_discussione`(
            `id_discussione` INT(11) NOT NULL AUTO_INCREMENT,
            `id_sezione` VARCHAR(255) NOT NULL DEFAULT '',
            `data_discussione` VARCHAR(255) NOT NULL DEFAULT '',
            `autore_discussione` VARCHAR(255) NOT NULL DEFAULT '',
            `titolo_discussione` VARCHAR(255) NOT NULL DEFAULT '',
            `testo_discussione` text NOT NULL,
PRIMARY KEY (`id_discussione`)
)TYPE=MyISAM AUTO_INCREMENT=1 

CREATE TABLE `forum_risposta`(
            `id_risposta` INT(11) NOT NULL AUTO_INCREMENT,
            `id_discussione` VARCHAR(255) NOT NULL DEFAULT '',
            `id_sezione` VARCHAR(255) NOT NULL DEFAULT '',
            `data_risposta` VARCHAR(255) NOT NULL DEFAULT '',
            `autore_risposta` VARCHAR(255) NOT NULL DEFAULT '',
            `oggetto_risposta` VARCHAR(255) NOT NULL DEFAULT '',
            `messaggio_risposta` VARCHAR(255) NOT NULL DEFAULT '',
             PRIMARY KEY (`id_risposta`)
)TYPE=MyISAM AUTO_INCREMENT=1;  

CREATE TABLE `forum_utenti`(
            `id_utenti` INT(11) NOT NULL AUTO_INCREMENT,
            `nome_utenti` VARCHAR(255) NOT NULL DEFAULT '',
            `password_utenti` VARCHAR(255) NOT NULL DEFAULT '',
            `data_utenti` VARCHAR(255) NOT NULL DEFAULT '',
            `mail_utenti` VARCHAR(255) NOT NULL DEFAULT '',
            `attivo_utenti` enum('0','1') NOT NULL default '0',
            `gruppi_utenti` VARCHAR(255) NOT NULL DEFAULT 'utente',
            `messaggi_utenti` INT(11) NOT NULL DEFAULT '0',
            `avatar_utenti` VARCHAR(255) NOT NULL DEFAULT '',
             PRIMARY KEY (`id_utenti`)
)TYPE=MyISAM AUTO_INCREMENT=1;
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
sono perfettamente d'accordo con alessandro1897.
poi un paio di cose
quando ti porti dietro l'id (o sezione o discussione o risposta) mantieni lo stesso tipo INT(11), poi per le date (secondo me) è megio usare INT(...) al posto di varchar ed utilizzare le date in formato timestamp, sono molto più comode per eventuali ordinameni per data, vi si possono effettuare facilmente operazioni e poi le trasformi a monitor come vuoi

poi, ma perchè non usi phpbb
 

angel

Utente Attivo
2 Nov 2009
109
0
0
^^ perché ne voglio creare uno per me...
potresti postarmi il codice delle tabelle come secondo te deve essere....
scritto...
 
Discussioni simili
Autore Titolo Forum Risposte Data
T vBulletin 3.8.x E' possibile creare una nuova pagina in PHP nel forum? CMS (Content Management System) 0
D problema con tutorial "Creare un forum con PHP" PHP 11
S Creare una community ed un forum in php PHP 9
JACK1971 Creare un Forum in PHP PHP 2
D creare un forum con php di JacopoNuzzi PHP 1
A Cerco programmatore/sviluppatore per creare forum Offerte e Richieste di Lavoro e/o Collaborazione 2
G Come creare un forum? phpBB 4
N Creare un forum acquistando un dominio Domini 1
A Creare forum da solo ASP.NET 2
E creare un forum senza sapere nulla di programmazione Hosting 1
I Creare un Forum universitario PHP 5
A cms per creare un forum? CMS (Content Management System) 9
C Creare un forum con inserimento foto del tipo jpeg e gif PHP 11
V cm creare un semplicissimo forum cn publisher??aiutoo!spiegate passo passo PHP 2
S aiuto come creare forum PHP 7
M Creare forum PHP 2
T Creare Aree Riservate solo ad alcuni gruppi o utenti nel forum PHP 1
NoBody creare un forum PHP 0
M Come creare forum e iscrizioni PHP 2
R Come si fa a creare forum o guest book con Dreamweaver? Webdesign e Grafica 9
F come creare un forum HTML e CSS 2
E Creare un testo trasparente dietro un div HTML e CSS 5
M Creare traccia di download file sul server HTML e CSS 2
L Creare ancore interne alla pagina PHP 1
I Creare un banner temporaneo JavaScript Javascript 0
C Creare Tabella Dati Meteo prelevandoli da dei Tags in un altro foglio PHP 27
simgia Cordova errore quando cerco di emulare o creare la app Sviluppo app per Android 2
U PHP creare un file excel dopo ricerca nel DB PHP 0
A Creare un cronometro PHP 5
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
F Creare elementi html con javascript Javascript 3
Shyson Modificare codice e creare link PHP 0
Cosina Creare bottone delete in form upload PHP 5
Cosina Creare bottone delete in form upload PHP 1
M Creare un campo input select quantità di un numero intero prelevato dal db PHP 3
L Creare una forma geometrica Photoshop 1
M [Cerco] aiutanti per creare sito Offerte e Richieste di Lavoro e/o Collaborazione 8
S Libreria PHP per creare file dwg o dxf PHP 0
R Come creare sistema Add to homescreen PHP 3
L Creare un countdown con giorno specifico della settimana PHP 3
W Creare link di una dato Classic ASP 0
W creare file .jar Java 2
M Creare con il Vb 2010 Il Classico Notes di Windows Vista Visual Basic 1
MarcoGrazia Creare una password Snippet Javascript 0
J creare pagina php di prenotazione PHP 5
A Creare un modulo di ricerca avanzata con dreamweaver HTML e CSS 0
INTEROPERABILITY Sviluppatrice/formatrice creare APP Offerte e Richieste di Lavoro e/o Collaborazione 0
L Creare una pagina pre-home WordPress 1
G Creare side-bar non visibile da dispositivi mobile HTML e CSS 0
L creare oggetti da una classe tramite un form Javascript 0

Discussioni simili