WebSite X5Help Center

 
Roberto M.
Roberto M.
User

DATABASE CON DESCRIZIONE ARTICOLI  it

Autor: Roberto M.
Besucht 2124, Followers 4, Geteilt 0  

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.

Gepostet am
23 ANTWORTEN - 1 NüTZLICH
Skeggia 12
Skeggia 12
Moderator

website si interfaccia benissimo con i database mysql che alcuni provider danno compresi nel dominio e altri, come aruba, lo devi acquistare a parte...

Mehr lesen
Gepostet am von Skeggia 12
Roberto M.
Roberto M.
User
Autor

Come bisogna fare?

Mehr lesen
Gepostet am von Roberto M.
Skeggia 12
Skeggia 12
Moderator

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...

Mehr lesen
Gepostet am von Skeggia 12
Roberto M.
Roberto M.
User
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.

Mehr lesen
Gepostet am von Roberto M.
Skeggia 12
Skeggia 12
Moderator

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...

Mehr lesen
Gepostet am von Skeggia 12
Tiziano C.
Tiziano C.
User

Complimenti Skeggia, si può dare una occhiata al codice di output?

Mehr lesen
Gepostet am von Tiziano C.
Skeggia 12
Skeggia 12
Moderator

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>

Mehr lesen
Gepostet am von Skeggia 12
Roberto M.
Roberto M.
User
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..

Mehr lesen
Gepostet am von Roberto M.
Skeggia 12
Skeggia 12
Moderator

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...

Mehr lesen
Gepostet am von Skeggia 12
Roberto M.
Roberto M.
User
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


Mehr lesen
Gepostet am von Roberto M.
Skeggia 12
Skeggia 12
Moderator

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...

Mehr lesen
Gepostet am von Skeggia 12
Roberto M.
Roberto M.
User
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).

Mehr lesen
Gepostet am von Roberto M.
Skeggia 12
Skeggia 12
Moderator

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...

Mehr lesen
Gepostet am von Skeggia 12
Roberto M.
Roberto M.
User
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? :-)

Mehr lesen
Gepostet am von Roberto M.
Skeggia 12
Skeggia 12
Moderator

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...

Mehr lesen
Gepostet am von Skeggia 12
Roberto M.
Roberto M.
User
Autor

Ti ho inviato un messaggio sul tuo sito come da tue indicazioni :-)

Mehr lesen
Gepostet am von Roberto M.
 stesil  
 stesil  
User

Scusate l'intromissione...

Skeggia 12
    // 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>'; }?>

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.

Mehr lesen
Gepostet am von  stesil  
Skeggia 12
Skeggia 12
Moderator

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?

Mehr lesen
Gepostet am von Skeggia 12
 stesil  
 stesil  
User

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.

Mehr lesen
Gepostet am von  stesil  
Skeggia 12
Skeggia 12
Moderator

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

Mehr lesen
Gepostet am von Skeggia 12
 stesil  
 stesil  
User

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ù.

Mehr lesen
Gepostet am von  stesil  
Skeggia 12
Skeggia 12
Moderator

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...

Mehr lesen
Gepostet am von Skeggia 12