Accedi per seguire   
Seguaci 0
daWsOn_s

[mysql] Info Tecnica E Dubbio!

18 messaggi in questa discussione

Inviato (modificato)

Salve,

dopo essermi stufato di creare sempre ogni pagina html mi son detto: creiamo questo benedetto sito dinamico che tutti dicono che sia un vantaggio assoluto, aggiornamenti facili! OK! Leggo le guide su html.it sul php (sono su server linux) e su altri tantissimi siti, e diciamo che ora capisco come funziona, avevo già anche una piccola base di linguaggi di programmazione quindi è stato relativamente semplice. Arrivato invece al database mysql, a parte il fatto che non sono riuscito proprio a trovare una guida che spiegasse esattamente cosa fa e come si gestisce per creare pagine dinamiche, mi sono imbattuto dopo aver installato server apache, mysql e php sul pc ad installare il blog wordpress che necessità di un database, quindi incuriosito ho visto che aggiungendo articoli questi non venivano salvati su files nel server ma in questo database (che io ho creato). Ok...qui è arrivato il punto. Senza contare il fatto che nonostante sapessi mostrare le tabelle non ho capito proprio come visualizzare quello che salvo e dove (figuriamoci crearne e farle interagire con un sito personale) , ho pensato: ma allora se qui si salva tutto nel database a cosa diavolo serve avere un server con spazio illimitato, o migliaia di GB con traffico senza limiti se i database vengono offerti con spazi molto piccoli?? Il più usato servizio di hosting in Italia offre per una somma spazio illimitato + traffico illimitato e una somma in più per avere fino a 5 database con 50 MB complessivo. Ora se io dovessi usare un blog e scrivessi un bel pò magari, allegando file e immagini questi MB me li fumerei un attimo, e poi che faccio?? Ho pagato per avere un servizio da 50mb??

Quindi correggetemi se sbaglio, forse non ho capito nulla di tutto il funzionamento, perchè mi sembra strano che creare pagine dinamiche abbia una conseguenza così limitante! Se io ad esempio volessi aprire un sito dove fare video streaming (stile youtube) potrei metterci solo un video praticamente?? visto che alla fine il video dovrà essere per forza nel database per essere visualizzato ad esempio in una ricerca!

In più la cosa che proprio non riesco a capire, praticamente cosa avrei in vantaggio con php?, si vede per forza avere un database per crearsi un sito dinamico? non sono riuscito a trovare un solo sito, ma dico uno solo che ti spiega passo passo un esempio di sito dinamico, come crearlo, non riesco a capire come potrebbe mai php crearti una pagina senza che tu la costruisca prima: come fa a sapere quali parole linkare e verso dove, la struttura, il titolo, ecc...leggo infatti in alcuni siti che i link a categorie hanno link del tipo "index.php?cat=2" --->immagino c'entri un richiamo ad un database.

Come vedete sono molto confuso e ho parecchi dubbi, se qualcuno gentile potesse rispondermi in modo pratico e completo alla mie richieste, spiegarmi per un sito di semplice informazioni cosa va in un database , magari darmi un link che spiega tutto in modo chiaro.

Grazie mille

Modificato da daWsOn_s

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Ora se io dovessi usare un blog e scrivessi un bel pò magari, allegando file e immagini questi MB me li fumerei un attimo, e poi che faccio?? Ho pagato per avere un servizio da 50mb??

Salvi la posizione e il nome del file, non il file stesso. Comunque per servire in automatico i file non è necessario avere un database a disposizione. Basta uno script che visualizzi i file all'interno di una cartella, con le apposite modifiche puoi filtrare e permettere di visualizzare soltanto alcuni tipi di file (ad esempio tutti i pdf).

Quanto al discorso ricerca stai pensando come un utente di un sito, non come uno che lo costruisce. Fondamentalmente quando ricerchi un file cosa fai? Metti un termine sul form di ricerca e premi invio. È quel termine, quella parola il tuo risultato. Il file è qualcosa che tu associ a quel termine, quindi nel database a te basta inserire il termine che associ al file che poi l'utente potrà scaricare.

Messa in questi termini 50Mb non saranno tantissimi ma nemmeno pochi. Prova a vedere quanto testo ci vuole per creare un file txt da 1Mb.

In più la cosa che proprio non riesco a capire, praticamente cosa avrei in vantaggio con php?, si vede per forza avere un database per crearsi un sito dinamico?

PHP sta ai contenuti come i CSS stanno alla rappresentazione grafica (al layout) del sito. Ti spiego, se sai usare bene i fogli di stile (CSS) puoi condensare in un solo file le regole che tengono in piedi l'aspetto grafico del tuo sito web: colori, dimensioni del testo e dei titoli, sfondi, il grassetto. I CSS in questo modo permettono di modificare qualcosa nell'aspetto grafico senza dover stare a modificare tutte le pagine del tuo sito, quando ne hai 3 o 4 cambia poco, quando ne hai 50-60 diventa una soluzione agevole.

Ora, in questa chiave di lettura il PHP ti permette di gestire la struttura di un sito e la rappresentazione dei contenuti. Prendiamo ad esempio il menu di navigazione del tuo sito web: si ripete uguale per una cinquantina di pagine. Poi decidi di voler modificare o aggiungere un link, che fai? Modifichi tutte le pagine del tuo sito e poi metti online oppure crei un file che contenga il menu di navigazione e lo includi in tutte le pagine? Con un solo file potresti gestire quella parte di codice che nel tuo sito si ripete sempre uguale. È vero ci sono sempre i frame, ma questi portano con se uno svantaggio notevole: non sono accessibili a due categorie di utenti: non vedenti e robot che indicizzano le pagine (Google!). L'inclusione invece è un'operazione totalmente trasparente e l'utente che visualizza il sito non se ne accorge in nessun modo, perché ottiene una sola pagina, non una pagina divisa in due o tre frame.

E si, i non vedenti possono navigare sul web. Usano browser speciali che gli permettono di navigare e leggere o ascoltare i contenuti delle pagine web.

Ma puoi fare di più: puoi creare una sola pagina per ciascuna sezione del tuo sito e fare in modo che PHP estragga i dati dal database e li visualizzi creandoti automaticamente tutte le pagine necessarie.

Il contenitore è sempre lo stesso.

L'aspetto grafico è sempre lo stesso.

I contenuti cambiano.

Potresti fare la stessa cosa con un iframe, ma oltre ad essere una soluzione rustica avresti problemi poi a creare un form di ricerca.

eggo infatti in alcuni siti che i link a categorie hanno link del tipo "index.php?cat=2" --->immagino c'entri un richiamo ad un database.

Non sempre si tratta di un database, delle volte si basa tutto su codice PHP, quel codice indica che nel file index.php c'è un'istruzione PHP che ha una variabile $cat quando questa ha valore 2 visualizza un determinato contenuto fornito anche da un semplice echo. Ecco un esempio:

<?php
switch($cat) {
case '1':
echo "contenuto numero 1"; 
 break;
case '2':
echo "contenuto numero 2";  
 break;
default:
echo "contenuto di default";
}
?> 

Questo riportato è uno switch quando viene richiamato il valore di una delle variabili (1, 2, 3...) visualizza i contenuti specifici, quando non viene specificato nulla visualizza il contenuto di default. Al posto di echo potresti usare il comando include che permette di includere un file contenente a sua volta altre istruzioni o porzioni di testo...

Se non disdegni l'inglese qua c'è un guida abbastanza buona :

- http://www.php-mysql-tutorial.com/

Un consiglio: prima di cercare di inserire o estrapolare dati da un database impara un po' come farlo con i comandi del db stesso, usando la sintassi SQL. Io non sono molto bravo in questo ma ho fatto un po' di pratica con sqlite, un database molto facile da usare. Ciao e buon lavoro :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Aggiungo! Guarda questo forum. Ha una sola pagina per mostrare i contenuti di tutto il forum: oltre 300 mila post.

Non sono 300 mila pagine, sono 300 mila contenuti mostrati sulla stessa struttura di un unico file. Se ti metti in un giorno potresti modificare la struttura di questa pagina facendola riflettere su tutto il forum.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Pure io mi sono messo da poco (ma con grande impegno) a creare le mie pagine dinamicamente.

Devo ammettere che creare la connessione con il database e riempirlo non è poi così difficile...ma sorgono un casino di piccoli problemi di ogni genere nel visualizzarli che incasinano le cose!

Ma se intendi utilizzare un'interfaccia prefabbricata come WordPress (facilissimo da configurare) allora te non ti dovrai scontrare con questi problemi ;-)

Come diceva CEREAL tu non devi (nemmeno puoi) salvare i file nel database, ma bensì il loro indirizzi (di semplice testo e quindi è lunga per te riempire i 50mb!).

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Come diceva CEREAL tu non devi (nemmeno puoi) salvare i file nel database, ma bensì il loro indirizzi (di semplice testo e quindi è lunga per te riempire i 50mb!).

Hai ragione quando dici che non si deve (diciamo che questo "dovere" è più una buona prassi di programmazione che una regola imposta vera e propria). Sul fatto che non puoi, non sono d'accordo. All'interno di un database è possibilissimo salvare file (anche di grandi dimensioni) basta utilizzare il formato del campo adatto :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Hai ragione quando dici che non si deve (diciamo che questo "dovere" è più una buona prassi di programmazione che una regola imposta vera e propria). Sul fatto che non puoi, non sono d'accordo. All'interno di un database è possibilissimo salvare file (anche di grandi dimensioni) basta utilizzare il formato del campo adatto :)

Si...è pure vero...ma è praticamente inutile perchè (soprattutto in questo spazio) sprecheresti spazio prezioso.

immaginavo che qualcuno mi avrebbe bacchettato su questa mia affermazione :P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Si...è pure vero...ma è praticamente inutile perchè (soprattutto in questo spazio) sprecheresti spazio prezioso.

immaginavo che qualcuno mi avrebbe bacchettato su questa mia affermazione :)

Eheheheh... Dietro la lavagna in castigo :popò:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Grazie a tutti per i preziosi consigli, ora mi rimetto a lavoro subito con quel tutorial :)

Comunque il fatto che per poter cambiare un link ho dovuto modificare tutte le pagine mi ha portato qui. Io capisco quello che volete dire, il problema è che non so metterlo in pratica :P I CSS li conosco e li so usare perfettamente (almeno quello)...non riesco proprio ad immaginare come potrebbe mai un codice modificarmi tutte le pagine, come fa a sapere (apparte lo stile ) quali immagini mostrarmi in quel determinato punto, che ad esempio voglio linkare delle pagine ad uno specifico sito....pare che il tutorial prometta bene all'inizio.vado a leggere :up1:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Primo problema, sto seguendo la guida, ho fatto due script php uno con le variabili di accesso, e un altro per la connessione per poterli usare in ogni pagina attraverso il comando include ma esce questo errore nel browser:

Warning: main(config.php) [function.main]: failed to open stream: No such file or directory in D:\www\index.php on line 11

Warning: main() [function.include]: Failed opening 'config.php' for inclusion (include_path='.;c:\php\includes;c:\php\PEAR') in D:\www\index.php on line 11

Warning: main(opendb.php) [function.main]: failed to open stream: No such file or directory in D:\www\index.php on line 12

Warning: main() [function.include]: Failed opening 'opendb.php' for inclusion (include_path='.;c:\php\includes;c:\php\PEAR') in D:\www\index.php on line 12

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

ho risolto ho sbagliato cartelle :up1:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Grazie a tutti per i preziosi consigli, ora mi rimetto a lavoro subito con quel tutorial :)

Comunque il fatto che per poter cambiare un link ho dovuto modificare tutte le pagine mi ha portato qui. Io capisco quello che volete dire, il problema è che non so metterlo in pratica :P I CSS li conosco e li so usare perfettamente (almeno quello)...non riesco proprio ad immaginare come potrebbe mai un codice modificarmi tutte le pagine, come fa a sapere (apparte lo stile ) quali immagini mostrarmi in quel determinato punto, che ad esempio voglio linkare delle pagine ad uno specifico sito....pare che il tutorial prometta bene all'inizio.vado a leggere :up1:

Non c'è niente di magico ;-) Semplicemente il tuo sito sa che in quel punto di una certa pagina ci va un'immagine mentre nello stesso posto di "un'altra pagina" ce ne va un'altra perchè glielo dici tu...

La tecnologia "dinamica" (meglio se la chiamiamo LATO SERVER) sposta il controllo della costruzione della pagina direttamente sul server.

Facciamo un esempio... Tu hai un forum con 24.500 utenti. Il tuo forum permette di visualizzare le informazioni relative agli utenti in una pagina che mostra a destra la foto, mentre a sinistra c'è il nickname, la data di iscrizione ecc...

Attraverso la tecnologia "statica" (o LATO CLIENT) sono obbligato a demandare al browser dell'utente il compito di visualizzare i dati relativi ad un determinato utente... Visto che il client non può accedere ai dati che io tengo sul database che si trova sul server, l'unico metodo è quello di mettergli a disposizione 24.500 pagine che in realtà sono tutte uguali... l'unica cosa che cambia è il contenuto (l'immagine a destra e i testi a sinistra).

Questo approccio rende difficilissimo mantenere quel sito (se volessi cambiare il layout del sito e mettere, ad esempio, la foto a sinistra ed il testo a destra, dovrei modificare 24.500 pagine!!!).

Attraverso quella "dinamica" invece, io scrivo una sola pagina che contiene lo stesso codice html presente in tutte e 24.500 le equivalenti pagine statiche, ma dove il contenuto deve cambiare in base al codice personale (id) dell'utente, inserisco del codice "dinamico" (lato server). Questo codice viene interpretato dal server prima di "mandare" la pagina al browser dell'utente e sostituisce i "segnaposto" scritti in codice "dinamico" (JSP, ASP.NET, PHP, ASP,...) con i dati prelevati dal database e che si riferiscono a quel particolare utente.

Esempio:

http://www.miosito.it/showuser.php?id=2000

quel ?id=2000 fa in modo che sul server web venga impostata una variabile di nome id il cui valore è 2000.

La pagina showuser.php fa un interrogazione SQL al server web chiedendogli i dati relativi all'utente con id pari a 2000. Qualcosa del tipo

"SELECT * FROM tabella_utenti WHERE id_utente = " . $id;

Riceverà un oggetto che conterrà tutti i dati di quell'utente che è possibile inserire nei posti giusti della pagina... In questo modo con un unica pagina sempre uguale (sul server), ottengo infinite pagine con i contenuti diversi (sul client).

:P

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Hi hi...non hai idea poi che casino è riuscire a interrogare il db con la query esatta quando hai tante variabili (lato server) che ci sono o ci possono non esserci <_< (è da quasi una settimana che per fare la pagina, la più complessa del mio sito, ovvero la pagina RICERCA, mi stò scervellando!)

Con questo però non intendo scoraggiarti, anzi...il risultato poi sarà ancora più spettacolare :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Non c'è niente di magico ;-) Semplicemente il tuo sito sa che in quel punto di una certa pagina ci va un'immagine mentre nello stesso posto di "un'altra pagina" ce ne va un'altra perchè glielo dici tu...

La tecnologia "dinamica" (meglio se la chiamiamo LATO SERVER) sposta il controllo della costruzione della pagina direttamente sul server.

Facciamo un esempio... Tu hai un forum con 24.500 utenti. Il tuo forum permette di visualizzare le informazioni relative agli utenti in una pagina che mostra a destra la foto, mentre a sinistra c'è il nickname, la data di iscrizione ecc...

Attraverso la tecnologia "statica" (o LATO CLIENT) sono obbligato a demandare al browser dell'utente il compito di visualizzare i dati relativi ad un determinato utente... Visto che il client non può accedere ai dati che io tengo sul database che si trova sul server, l'unico metodo è quello di mettergli a disposizione 24.500 pagine che in realtà sono tutte uguali... l'unica cosa che cambia è il contenuto (l'immagine a destra e i testi a sinistra).

Questo approccio rende difficilissimo mantenere quel sito (se volessi cambiare il layout del sito e mettere, ad esempio, la foto a sinistra ed il testo a destra, dovrei modificare 24.500 pagine!!!).

Attraverso quella "dinamica" invece, io scrivo una sola pagina che contiene lo stesso codice html presente in tutte e 24.500 le equivalenti pagine statiche, ma dove il contenuto deve cambiare in base al codice personale (id) dell'utente, inserisco del codice "dinamico" (lato server). Questo codice viene interpretato dal server prima di "mandare" la pagina al browser dell'utente e sostituisce i "segnaposto" scritti in codice "dinamico" (JSP, ASP.NET, PHP, ASP,...) con i dati prelevati dal database e che si riferiscono a quel particolare utente.

Esempio:

http://www.miosito.it/showuser.php?id=2000

quel ?id=2000 fa in modo che sul server web venga impostata una variabile di nome id il cui valore è 2000.

La pagina showuser.php fa un interrogazione SQL al server web chiedendogli i dati relativi all'utente con id pari a 2000. Qualcosa del tipo

"SELECT * FROM tabella_utenti WHERE id_utente = " . $id;

Riceverà un oggetto che conterrà tutti i dati di quell'utente che è possibile inserire nei posti giusti della pagina... In questo modo con un unica pagina sempre uguale (sul server), ottengo infinite pagine con i contenuti diversi (sul client).

:P

Questo l'ho capito ma il problema ripeto è come farlo! :leggi: mi spiego: ho un sito sulle serie tv (come vedete in firma) in cui c'è una pagina dove è presente l'elenco delle serie, ogni pagina è uguale strutturalmente, ovviamente cambia l'immagine di intestazione e il contenuto nel senso, la descrizione, le immagini e i link ad ogni file (con relativo script php nel codice che mostra la dimensione dei file da scaricare e i click salvati su file txt) ora queste pagine l'ho create una ad una così come i file txt e gli script ad ogni link (un lavoro veramente stressante a volte). Quello che mi chiedo ora a parte il menu che possono essere gestiti con gli include come faccio a far creare pagine dove deve scrivere in una tabella minuti, descrizioni, titoli, canale, musica ad ogni file?? Queste informazioni dove le andrò a mettere? Come si compono un codice del genere? E se io voglio impostare un titoli ad ogni pagina diverso, e in una pagina di una serie volessi linkare ad un sito esterno una singolo parola?

E' questo è il problema; non riesco ad immaginarmi una cosa del genere se la pagina non la costruisco a vista e controllo ogni punto dall'editor così come ho sempre fatto, non so se capite.. :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Prima di tutto devi studiarti il database in modo da sistemare per bene le relazioni che ci sono tra i dati che utilizzerai per il tuo sito...

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Prima di tutto devi studiarti il database in modo da sistemare per bene le relazioni che ci sono tra i dati che utilizzerai per il tuo sito...

già...lo farò :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ed ecco il risultato : (click firma) :)

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti
Ed ecco il risultato : (click firma) :)

Wow :P Gran bel risultato :P :P :wub:

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un utente registrato per partecipare

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!


Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.


Accedi Ora
Accedi per seguire   
Seguaci 0