DATABASE CON DESCRIZIONE ARTICOLI
Autor: Roberto M.Boungiorno a tutti,
nella nostra azienda abbiamo più di 200 prodotti. Questi articoli, con la loro relativa descrizione, appaiono in diverse pagine all'interno di tabelle diverse tra loro e, senza un database com'è ora, diventa laborioso andare a modificare la descrizione di un articolo perchè occorre farlo pagina per pagina.
Per capire di cosa sto parlando, potete vedere il sito in questione è www.zucchini.it, finora fatto con Website X5 solo nella versione con lingua italiana.
Immagino che la soluzione per aggiornare un prodotto in tutte le tabelle nelle varie pagine consista nell'inserire la sua descrizione in un database e poi richiamare, all'interno delle cella di una tabella quando è necessario, la descrizione presente nel database, giusto? Occorre necessariamente Access o ci sono anche altri programmi gratuiti che creano database e vanno bene con Website x5? Io ho Website X5 nella sua versione più completa e sempre aggiornato all'ultima versione, attualmente la 13.
Chiedo a voi le istruzioni passo passo perchè non ho mai utilizzato un database e non so come linkare all'interno di una cella di una tabella la descrizione di un articolo presente in un database.
Grazie infinite a chi mi può aiutare perchè sono in una situazione critica.
website si interfaccia benissimo con i database mysql che alcuni provider danno compresi nel dominio e altri, come aruba, lo devi acquistare a parte...
Autor
Come bisogna fare?
per far dialogare website con il database bisogna essere un pochino esperti di php o reperire in rete script adatti alle proprie esigenze... ho dato un'occhiata al sito... dopo aver creato la tabella che conterrà le descrizioni e inserito i dati nel database non dovrebbe essere molto complicato richiamare per ogni prodotto la descrizione... ci sarà da sostituire il testo ora presente con un piccolo script per richiamare lo stesso testo dal database...
se vuoi vedere un piccolo esempio qui...
http://www.skeggia12.it/test/microOnde/index.php
clicca sulle tre voci a destra per far visualizzare gli elementi...
realizzato con uno script e una tabella sul database...
Autor
Grazie Skeggia, è esattamente quello che vorrei ottenere.
dove posso trovare gli script da cui attingere ed eventualmente modificarmeli?
Non saprei crearmelo da zero, ma modificarlo forse sì.
Non so come sia strutturato il database che hai creato per questo esempio interessante.
prima cosa bisogna creare una tabella sul database con i campi che ti occorrono...
id, sigla prodotto, titolo, descrizione, ecc. ecc...
se i testi li hai in un file excel, ad esempio, si possono importare direttamente su database, salvandoli prima come file .csv... (se li hai in un file txt si può fare la stessa cosa senza salvarli in .csv)...
se invece devi inserirli manualmente, forse conviene inserire in website un form con i vari campi e inserire i dati direttamente da website (quindi far creare la tabella e i relativi campi a website)...
fatto questo passeremo alla parte php per far visualizzare il contenuto del db nelle pagine dei tuoi prodotti... credo che lo script non vada neanche modificato ma solo cambiati i nomi dei campi...
eventualmente posta il file delle descrizioni per dargli un'occhiata...
Complimenti Skeggia, si può dare una occhiata al codice di output?
perchè no...
la struttura dell'esempio è costruita in varie zone, al cui interno c'è un codice simile a quello che posto sotto, con le variabili differenti per ogni area, ma il concetto è lo stesso...
devo anche precisare, come giusto che sia, che ho ricevuto un aiuto consistente da MAeSI...
<?
// richiamo il file di configurazione
require 'config.php';
// richiamo lo script responsabile della connessione a MySQL
require 'connect.php';
$categoria = $_GET['id'];
$query = mysql_query("SELECT * FROM nometabella WHERE id='$categoria'");
while ($row=mysql_fetch_assoc($query)){
echo '<p class="ingredienti">', $row['ingredienti'], '</p>';
}?>
il tutto richiamato dal click sul nome del piatto, al cui interno c'è...
<a href="index.php?id=1">1 - DELIZIA DI RADICCHIO ALLE NOCI</a>
Autor
Ciao Skeggia,
cosa intendi con "forse conviene inserire in website un form con i vari campi e inserire i dati direttamente da website (quindi far creare la tabella e i relativi campi a website)..." ?
Ossia, come faccio in website ad inserire e gestire 200 articoli come mi stai dicendo? Perdonami ma in questo sono totalmente all'inizio..
inizialmente ti ho chiesto se le descrizioni dei prodotti le hai già digitalizzate e in che formato... se le hai in un formato compatibile (excel, quindi esportabile in formato csv, txt) hai la possibilità, formattandole adeguatamente di caricarle direttamente in una tabella del database precedentemente creata... se invece devi ancora digitarle, proponevo di inserire un form per inserirle nel database... ma visto che già sono nelle schede del sito dovresti averle già... quindi basterebbe formattarle adeguatamente per poterle caricare sul database... se vuoi puoi mandarmele alla mia mail che trovi sul mio sito www.skeggia12.it che gli do un'occhiata...
Autor
Ciao Skeggia, i testi li ho scritti direttamente nelle tabelle fatte con website, ma in questo modo devo modificare cella per cella a mano dato che molti articoli appaiono in pagine diverse in tabelle diverse.
www.zucchini.it < lingua italiana, io ho solo questo. Lo stesso testo di più articoli appare in più pagine perchè ho dovuto fare fisicamente copia e incolla in tutte le celle in cui è presente un tot prodotto.
Per esempio il prodotto X165 appare sia in adesivi poliuretanici che in adesivi per incollaggio suola e tomaia. Il contenuto delle due pagine relativa a quel prodotto è copiato e incollato nelle reciproche celle.
E' come se avessi una pagina che contiene il prodotto A B C e D, poi un'altra pagina (la prima scompare se clicco una seconda pagina) che contiene solo B e D, un'altra con A C D e così via.
Io al momento non ho alcun programma di database e non so come creare un form per inserirle in un database, di conseguenza non so nemmeno cosa si deve fare per formattare adeguatamente le tabelle esistenti per poi poterle scaricare su un database.
Se vuoi ti mando il sito intero fatto con website tramite wetransfer, io non ho altro, solamente le tabelle che vedi su www.zucchini.it
il lavoro da fare allora è molto grosso... praticamente bisognerebbe copiare pezzo per pezzo le descrizioni dei vari prodotti e renderle importabili in una tabella del database... dopodichè bisogna inserire un pezzo di codice php tipo quello che ho postato sopra in ogni cella contenete la descrizione del prodotto con il riferimento a quel prodotto... praticamente rifare quasi daccapo il sito... vedi tu se vuoi imbarcarti in una soluzione del genere... ciao...
Autor
Ciao Skeggia,
grazie mille per il tuo supporto.
sì, posso farlo un po' alla volta. E' un lavoro enorme, me ne rendo conto, ma una volta fatto basta aggiornare la descrizione di un prodotto nel database e automaticamente si aggiornano tutte le pagine, giusto?
Ti chiedo, per favore, di dirmi che programma (eventualmente freeware ma buono) posso usare per creare il database (perchè non credo che nel contratto aziendale con il provider abbiano incluso il database) e come impostare i campi (non avendo mai fatto un database non so ad esempio se occorre mettere prima di tutto una riga che contenga la intestazioni come nome prodotto, scheda tecnica, foto, ecc e se un campo del database può contenere un link ad un'immagine, in modo che quando si cambia la foto automaticamente si cambia in tutte le pagine).
la prima cosa che devi fare, è acquistare il servizio database dal tuo provider (ispeed?) ma forse se hai un contratto sound speed dovrebbe essere già incluso... comunuque chiamali e fatti spiegare, nel caso acquistalo e riceverai i dati di connessione... per l'impostazione della tabella e dei campi ci pensiamo poi...
Autor
Ciao Skeggia,
allora mi sono informato dal provider e mi conferma che nel nostro contratto c'è incluso il database e mi ha dato i seguenti parametri:
dbserver
dbname
dbusername
dbpassword
link al PHPMYADMIN
Come si procede ora? :-)
ora bisogna inserire i dati nel database...
ti preparo un form per l'inserimento di questi dati...
dovresti però darmi delle informazioni per fare questo...
se mi mandi un messaggio alla mia mail (che trovi in www.skeggia12.it - contatti) te lo chiedo in privato...
poi condivideremo i risultati anche qui a beneficio di tutti...
Autor
Ti ho inviato un messaggio sul tuo sito come da tue indicazioni :-)
Scusate l'intromissione...
Antonio, mi ricordo che ne avevamo già parlato, la variabile che memorizza il valore passato in get deve essere validata prima che esegua la query nel database.
Esiste una concreta possibilità di query injection mantenendo il codice come lo hai scritto. Per validazione intendo definire quali valori sono accettabili per la variabile prima di utilizzarla nella select. Puoi ad esempio scrivere un array con le categorie presenti e ciclarlo per verificare che il parametro corrisponda ad una categoria esistente e, se non lo è, visualizzare in un echo un messaggio invece che eseguire la query.
grazie dell'intervento stesil... non disturbi mai... anzi...
sono io che non sono in grado di programmare, quindi provo a modificare qualcosa di esistente... sempre lo stesso script vostro, con l'ennesimo adattamento...
per questo intervento per roberto, che non ha bisogno di un campo in cui inserire il valore in get, ho tirato giù questo esempio... utilizzando valori scritti dentro lo script e poi verrà tutto separato in pagine differenti (mi sono basato sul suo sito online) così...
http://www.skeggia12.it/test/v13-1/zucchini/pagina-1.php
certo non è il massimo... ma funziona...
se guardi anche la pagina form, ho modificato un'altro script di un vostro esempio per la scelta condizionale...
con il primo elenco a discesa, selezionando una voce, viene reso visibile il campo con la sottocategoria corrispondente...
anche qui non bello come effetto, ma funzionale...
eh... mi adatto con le mie 0 conoscenze di js e php...
che ne pensi?
Il mio intervento era solo dettato da uno scrupolo: inserire uno script lato server non sicuro può creare danni notevoli e, visto che hai postato il codice, prima che qualcuno lo utilizzi così com'è, secondo me è opportuno che si sappia che manca una parte fondamentale.
Perché dici che quello che hai ottenuto non è il massimo?
C'è da controllare qualche apertura/chiusura di p e div nell'output, ma mi sembra buono.
Per la pagina con il form, bisogna adattare lo script che hai usato alla versione 13, per nascondere anche il label dell'elemento. Prova ad usare questo codice (non l'ho provato su una select, ma lo abbiamo usato nel form per la unite gallery e lì funziona):
$(mioinput2).parents(".imObjectFormFieldContainer").css('display', 'none');
modificando in modo analogo anche quello per riportare display a inline.
grazie... anche quello che ho usato senza get è soggetto ad attacco?
vado anche a correggere gli errori...
un saluto
____________
inutile dire che funziona... ora più elegante...
corretti anche gli errori...
grazie
Il codice PHP, lo sai, non lo posso vedere ma, per le conoscenze che ho io, se hai modificato questo codice e non sono presenti valori passati in GET o inseriti dall'utente privi di controllo, non ci dovrebbero essere problemi.
Magari qualcun altro più esperto può dire di più.
si il codice è quello (iniziale)... ci ho messo mano così tante volte che quasi non lo riconoscevo... l'ultima volta (stavo progettando un sito per eventuale agenzia immobiliare) avevo inserito un campo di scelta e quindi il parametro alla query glielo passavo con GET... qui ho tolto la scelta get e passo il parametro manualmente così...
$qitem = $qdb->query("SELECT * FROM $qtable WHERE $qtipologia = 'SCARPE'");
tanto in ogni pagina andrà solo un parametro...
buon weekend...