Caricare pagine del sito sul database

frank ocean

Nuovo Utente
13 Ott 2012
18
0
0
Sto realizzando un sito di musica, per cui con svariate sezioni dedicate a video, album, articoli, produzioni,artisti e mi domandavo in che modo dovrei muovermi per creare nel database delle tabelle contenenti pagine html relative ai vari articoli che scrivero' in maniera da rendere poi il tutto reperibile con un motore di ricerca interno in grado di richiamare i contenuti del db!

In sostanza mi domandavo se fosse possibile caricare pagine html sul db!

Esempio pratico: l'utente che vuole cercare informazioni su lucio battisti , digitera' sul form di ricerca il nome dell'artista in maniera da visualizzare tutto cio che c'e' di inerente a lucio battisti sul sito e quindi sul database!

Spero di aver reso l'idea e mi scuso in anticipo se per quanto concerne Mysql non son proprio un genio!
 
Allora, intanto l'idea di mettere l'intera pagina HTML in database non mi sembra proprio bellissima: ti consiglierei, piuttosto, di prendere una pagina PHP e, a seconda di quanto richiesto dall'utente (in base ad un id o in base ad una ricerca) viene preso da database quanto necessario e stampato.
Comunque, per quello che vuoi fare te, dovresti fare qualcosa del genere:

Tabella:
Codice:
CREATE TABLE pages (
 id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
 title VARCHAR(128) NOT NULL,
 body TEXT NOT NULL
) ENGINE = MYISAM;

In questo modo crei una semplice tabella formata da id (int), titolo della pagina (varchar(128), oppure modifica te le dimensioni a tuo piacimento), e contenuto della pagina (text).
A questo punto, per inserire una nuova pagina, dal tuo "pannello di amministrazione" dovrai usare uno script del genere:

PHP:
<?php
mysql_query ("INSERT INTO pages (title,body) VALUES ('{$title}','{$body}')";
?>

Ovviamente ho omesso tutta la parte di connessione al database, ricevimento e parse dei dati, form vari, login per accedere al pannello, ecc..

Quando, invece, dovrai visualizzare una pagina, potrai operare in questo modo:

PHP:
<?php
$res = mysql_query ("SELECT FROM pages WHERE id = '{$id}'");
$row = mysql_fetch_row ($res);
?>
<html><head><title><?php echo $row[1]; ?></title></head><body>
<?php echo $res[2]; ?>
</body></html>

In questo modo, una volta che hai id (opportunamente letto da qualche parte), viene stampata la relativa pagina presa dal database.
Se, invece, vuoi cercare all'interno del db una determinata stringa contenuta nella pagina, dovrai modificare la query utilizzata, cercando nella colonna "body" e, invece di utilizzare l'uguaglianza, dovrai usare LIKE '%stringa%', che sta a significare che tu richiedi tutte le stringhe contenenti all'interno la stringa desiderata (occhio che, se vuoi tenere in considerazione anche i contenuti aventi "stringa" all'inizio o alla fine, dovrai "ORare" con 'stringa%' e '%stringa' :D).

In ogni caso, non ti consiglio di inserire codice html all'interno del database mysql, non per altro perchè non è molto elegante come cosa imho :)
 
Ultima modifica di un moderatore:

Discussioni simili