Ciao a tutti avrei una domanda da porvi, ho da poco creato un sito che tratta perlopiù di materiale sclastico però mi trovo ad avere un grosso quesito, nelle pagine dedite agli appunti delle varie materie ci ho messo una barra della ricerca, la mia domanda è come faccio ad impostare questa barra affinchè cerchi i contenuti in un database..? es: utente 1 cerca Pippo e la barra lo reindirizza ad una pagina contenente tutti gli appunti su Pippo..
ok..quindi per avere il tutto funzionale..come devo strutturare il mio dtabase sql..esso è un database di appunti di storia, e per il momento non ho materiale da metterci poichè non avendo ancora terminato il sito non aveva senso cominciare a scrivere delgi appunti, supponiamo ora che io faccia un database senza informazioni e che con uno script leghi esso alla barra della ricerca in futuro quando avro materiale come posso inserirlo da phpMyadmin oppure devo rifare il tutto in locale e poi trasferirlo sul sito web con conseguente riscrittura dello script in php..? 2) una volta che ho il materiale, come faccio a inserirlo nel database..? 3) Quando nella form l'utente scrivera, come nell'esempio di prima, pippo la barra lo reindirizzerà ad una pagina contenente tutti gli appunti su pippo...cioè io devo fare solo creare il database e poi la pagina in html dove sono contenuti tutti gli appunti su pippo si creerà da sola..?
hai 2 opzioni, o schiaffi tutto dal phpmyadmin, o ti fai una paginina che compili, per aggiungere i dati al database....
per la tabella, fai una roba simile
nome tabella: tabella
colonne : ID TITOLO TESTO
una cosa simile, quindi hai 3 colonne, quindi devi dire all'sql quando cerchi qualcosa, che deve cercarla dentro una di quelle colonne, e con un ciclo while e il mysql_fetch_array, scarichi tutti i dati che l'sql ti restituisce, ogni ciclo, una risposta.. fino a che non ha trovato più nulla...
ok..il php lo conosco è con l'sql che diciamo sto familiarizzando..quindi per creare database non è sufficiente immagino access...e poi trasferisco tutto online..? secondo io ho compreso dai vari tutorial che in un database si inseriscono delle informazioni..ma le mie informazioni sono dei file..cioè l'utente finale dovrà vedere come risultato della sua ricerca finale una pagina con una prima serie di appunti in formato .doc .txt che può scaricare, un'altra serie di appunti e via così...come una specie di lista...
Allora ci provo
prima cosa che database usi: Mysql, postgres .....
Crea un database, chiamalo appunti.
In questo database crei una tabella storia, il codice per creare la tabella è questo se usi mysql, ma dovrebbe andare anche per altri DB.
CREATE TABLE IF NOT EXISTS `storia` (
`id` varchar(250) NOT NULL,
`titolo` varchar(250) NOT NULL,
`testo` varchar(250) NOT NULL,
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Così hai creato una tabella con 3 campi
ID = id univoco per rintracciare sempre quel record.
titolo = il titolo dell'appunto.
testo = il testo dell'appunto.
Con i campi creati puoi inserire testo fino a 250 caratteri altrimenti devi cambiare tipologia ma per iniziare va bene.
crea una pagina con i parametri di connessione al db:
$query_appunti = "SELECT * FROM appunti where titolo LIKE %'". $_REQUEST['id'] ."'% ";
$appunti = mysql_query($query_appunti, $conn) or die(mysql_error());
$row_appunti = mysql_fetch_assoc($appunti);
$totalRows_appunti = mysql_num_rows($appunti);
Prima di tutto volevo ringraziarti perchè mi hai chiarito le idee in modo più che eccelente..seconda cosa io ho creato una barra della ricerca il codire relativo alla barra della ricerca si può integrare anche con la mia..è allegata al messaggio...
E' un codice preso online o lo hai fatto tu ?
Ti spiego il perchè di questa domanda.
Spesso i codici presi un po in giro, sono perfetti ed anche abbastanza avanzati con un po di java ed ajax, ma se non capisci bene il codice come è fatto e come funziona, ci perdi mesi per adattarlo alle tue esigenze.
Io di solito per ottenere un risultato soddisfacente creo comunque un qualcosa di funzionante per poi passare ad "affinarlo" magari inserendo un po di javascript/ajax.
Quello che ti ho scritto su (tra l'altro a volo ed a mente quindi da testare) è un codice minimale per fare quello che ti serve.
In seguito potresti integrare un menù a tendina dove poter scegliere direttamente il titolo degli appunti da consultare e visualizzarlo nella stessa pagina senza ricaricarla, però secondo il mio parere è meglio che parti da un prodotto funzionante e semplice da capire.
Diciamo che lo la barra dell ricerca lo presa e poi ho modificato il file.css per renderlo simile alla barra della apple se mi dai un email possiamo continuare a parlare li poichè mi carica a fatica il forum e magari visto che sei più competente volevo chiederti se volevi far parte del progetto poichè ora come ora sto cercando un po di gente..se ti va se no continuiamo qui..non c'è problema..
Possiamo tranquillamente continuare qui, anche se l'argomento non è strettamente inerente al forum, magari a qualcuno interessa e può prendere spunto anche da noi.
Grazie...veramente mi hai chiarito molto le cose...quindi diciamo che se io volessi fare la stessa cosa per un altra sezione tipo appunti di italiano.. creo un database con mysql e poi modifico le informazioni in config.php con le informazioni dell'altro database..?
[QUOTE=crash212;63095]Grazie...veramente mi hai chiarito molto le cose...quindi diciamo che se io volessi fare la stessa cosa per un altra sezione tipo appunti di italiano.. creo un database con mysql e poi modifico le informazioni in config.php con le informazioni dell'altro database..?[/QUOTE]
No il database resta 1 solo, devi inserire le tabelle all'interno, crei una tabella italiano
CREATE TABLE IF NOT EXISTS `italiano` (
`id` varchar(250) NOT NULL,
`titolo` varchar(250) NOT NULL,
`testo` varchar(250) NOT NULL,
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Con questo codice in pratica
CREATE TABLE IF NOT EXISTS `italiano` : Crea una tabella nel database selezionato che si chiama italiano
`id` varchar(250) NOT NULL, : nella tabella italiano crea il campo id che può essere di massimo 250 caratteri e non può essere nulla cioè vuoto
`titolo` varchar(250) NOT NULL, : nella tabella italiano crea il campo titolo che può essere di massimo 250 caratteri e non può essere nulla cioè vuoto
`testo` varchar(250) NOT NULL, : nella tabella italiano crea il campo testo che può essere di massimo 250 caratteri e non può essere nulla cioè vuoto
KEY `id` (`id`) : Assegna al campo id la chiave primaria.
Bhe allora è veramente comodo credevo si dovessero creare più tabelle perciò lo script in php riconosce tramite le key words inserite all'interno della barra a che tabella attingere e di conseguenza ridà le informazioni desiderate..? Ho capito bene..?
Diciamo di si, non devi fare confusione fra Database che è il contenitore generale, le tabelle ed i record, per farti capire:
Database appunti
____|________________
| | |
storia italiano matematica
_______|______ |
| | | |
id titolo testo|
______|________
| | |
id titolo testo
Spero di essermi spiegato !
Logicamente la stringa di ricerca cambia, nel file config tu fai la connessione al server database e selezioni il database che ti interessa.
Nella stringa di ricerca tu selezioni la tabella che ti interessa:
Select * from storia : seleziona tutti i record dalla tabella storia e ti restituisce un array con i risultati
Select * from italiano : ti seleziona tutti i record dalla tabella italiano
Select * from storia where id = xxxx : ti restituisce come risultato tutti i record che hanno come id xxxx
Giusto per non fare vaccate te lo chiedo anche se potra sembrare ovvio nello script config.php l'host,user, pass, db, li vanno inseriti i dati del mio database..?
Segnalibri