• User Attivo

    Creare elenco cronologico da input form

    Ciao! Ho fatto questo form e vorrei inviarlo ad un elenco clienti numerato.

    [HTML]<html>
    <title>accettazione cliente</title>
    <body>

    ACCETTAZIONE CLIENTE<br>
    <form action="" name="modulo1">
    NOME:<input type="text" name="nome1"><br><br>
    COGNOME:<input type="text" name="cognome2"><br><br>
    DATA DI NASCITA:<input type="text" name="data di nascita3"><br><br>
    CITTA' DI NASCITA:<input type="text" name="città di nascita4"><br><br><br><br>

    <input type="submit" value="INVIA I DATI">

    </form>
    </body>
    </html> [/HTML]

    Vorrei che ogni volta che inserisco un cliente mi vada in una pagina elenco clienti (in ordine cronologico)
    Solo che non sò dove iniziare...ho letto e riletto le guide ma non mi ci ritrovo...mi aiutate per favore?
    Grazie!


  • User Attivo

    Allora, la prima cosa da fare è far stabilire un formato standard in cui far inserire la data di nascita, qualcosa del tipo "gg/mm/aaaa" oppure "gg/mm/aa".
    Stabilito questo, immagino che tu voglia conservare questi dati in una tabella, per poi mostrarli ordinati per data, no?
    Se non hai una tabella possiamo usare un file di testo, indicaci quale strada dobbiamo percorrere.


  • User Attivo

    [...]
    Esattamente momino hai capito benissimo!
    Dovrei inserire nome, cognome, data di nascità, città di nascità, ma questi dati vengono inseriti già nel form che ho postato sopra giusto?
    Il cliente poi all'invio dati dovrebbe andare in una tabella o un file di testo, dimmi tu, però vorrei metterli per ordine cronologico, quindi primo cliente...secondo cliente...terzo cliente eccetera eccetera...
    Grazie momino!


  • User Attivo

    Ora dovresti solo specificare in quale tipo di struttura intendi conservere i dati, se file di testo o database, perchè per creare un elenco tenendo memoria di precedenti inserimenti ci vuole un posto dove metterli, ti pare? 😄


  • User Attivo

    E qui arriva il difficilissimo...io ti direi in un database, ne ho acquistato uno, quello di aruba, ma lo trovo difficilissimo...


  • User Attivo

    Invece è semplicissimo, vai sul tuo database e crea una tabella "elenco_clienti" con i capi:

    - id INT(5) AUTOINCREMENT PRIMARY KEY;
    - nome VARCHAR(50);
    - cognome VARCHAR(50);
    - data_di_nascita INT(15);
    - citta_di_nascita VARCHAR(50);
    - data_registrazione INT(15);
    

    Una volta fatto questo, la pagina php che elaborerà i dati del form avrà questo codice:
    [PHP]<?php
    mysql_connect($host,$username,$passowrd);
    mysql_select_db($database);
    //creo l'array con il giorno/mese/anno
    $arr_data = explode("/",$_POST['data_di_nascita3']);
    //converto quella data in unix timestamp, così da poterlo ordinare (risulterà un numero intero di 12 cifre)
    $data_di_nascita = mktime(0,0,0,$arr_data[1],$arr_data[0],$arr_data[2]);
    $nome = $_POST['nome1'];
    //rimpiazzo gli eventuali apostrofi
    $nome = str_replace("'","'",$nome);
    $cognome=$_POST['cognome2'];
    //rimpiazzo gli eventuali apostrofi
    $cognome = str_replace("'","'",$cognome);
    $citta_di_nascita = $_POST['citta_di_nascita4'];
    //rimpiazzo gli eventuali apostrofi
    $citta_di_nascita = str_replace("'","'",$citta_di_nascita);

    //inserimento del nuovo cliente
    $query = "INSERT INTO elenco_clienti VALUES ('','$nome','$cognome',$data_di_nascita,'$citta_di_nascita',time());
    $risultato = mysql_query($query) or die ("query '$query' fallita

    ".mysql_error());
    while ($cliente = mysql_fetch_array($risultato))
    {
    echo $cliente['nome'].' '.$cliente['cognome'].', ';
    echo 'nato a '.$cliente['citta_di_nascita'].' il '.date('d/m/Y',$cliente['data_di_nascita']).', ';
    echo 'registrato il '.date('d/m/Y',$cliente['data_registrazione']). alle '.date('H:i:s',$cliente['data_registrazione']).'<br>';
    }
    ?>[/PHP]

    Spero sia tutto quello di cui hai bisogno...


  • User Attivo

    Grazie momino, appena ho un attimo di tempo lo faccio immediatamente! :smile5:
    Non devo mettere anche lo script per la connessione database? io con mio database mi connetto semplicemente mettendo username e pass o c'è dell'altro?
    Grazie!!!


  • User Attivo

    Ovvio che devi prima connetterti... 🙂


  • User Attivo

    Ho creato la cartella nel database con esito positivo, poi ho fatto copia incolla del codice php che mi hai dato tu mettendo i miei dati...host eccetera, l'ho messo nel note book salvandolo come file php, poi dal database ho fatto sfoglia...sono andato a prendermi il file...ma alla sua esecuzione mi dà questo errore...

    Messaggio di MySQL:
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<?php
    mysql_connect($62.,$Sql,$password)' at line 1

    :?:?:?


  • User Attivo

    id INT(5) AUTOINCREMENT PRIMARY KEY;
    ...questo dove lo devo mettere?


  • User Attivo

    Allora, come tutti i "copia&incolla" da questo sito, vengono trasformati i caratteri di apertura tag, vedi che nel codice risulta "<" al posto di "<", e ">" al posto di ">". Magari anche "&" al posto di "&".
    Controlla queste cose e vedi che funge.


  • User Attivo

    Ho ricontrollato il codice che ho copiato nel block notes e sembra tutto ok...il segno < e > non sono sostituiti dai simboli che dici...ma l'errore non è un errore di connessione?
    Guarda io ci provo ma non ci riesco...ho controllato e il codice è tale e quale a come l'hai scritto tu sul notes.


  • User Attivo

    Ho detto così perchè ad un altro utente è successa la stessa cosa, e sostituendo funzionava. Anche perchè l'errore te lo da proprio all'apertura del tag "<?php...", che inizia proprio col simbolo "<" di cui prima.
    Altrimenti posta il codice php (nascondendo i dati sensibili).


  • User Attivo

    [php]<?php
    mysql_connect($6,$Sq,$pass);
    mysql_select_db($Sql216305_2);
    //creo l'array con il giorno/mese/anno
    $arr_data = explode("/",$_POST['data_di_nascita3']);
    //converto quella data in unix timestamp, così da poterlo ordinare (risulterà un numero intero di 12 cifre)
    $data_di_nascita = mktime(0,0,0,$arr_data[1],$arr_data[0],$arr_data[2]);
    $nome = $_POST['nome1'];
    //rimpiazzo gli eventuali apostrofi
    $nome = str_replace("'","'",$nome);
    $cognome=$_POST['cognome2'];
    //rimpiazzo gli eventuali apostrofi
    $cognome = str_replace("'","'",$cognome);
    $citta_di_nascita = $_POST['citta_di_nascita4'];
    //rimpiazzo gli eventuali apostrofi
    $citta_di_nascita = str_replace("'","'",$citta_di_nascita);
    //inserimento del nuovo cliente
    $query = "INSERT INTO elenco_clienti VALUES ('','$nome','$cognome',$data_di_nascita,'$citta_di_nascita',time());
    $risultato = mysql_query($query) or die ("query '$query' fallita

    ".mysql_error());
    while ($cliente = mysql_fetch_array($risultato))
    {
    echo $cliente['nome'].' '.$cliente['cognome'].', ';
    echo 'nato a '.$cliente['citta_di_nascita'].' il '.date('d/m/Y',$cliente['data_di_nascita']).', ';
    echo 'registrato il '.date('d/m/Y',$cliente['data_registrazione']). alle '.date('H:i:s',$cliente['data_registrazione']).'<br>';
    }
    ?>[/php]


  • User Attivo

    Se davvero hai controllato i caratteri speciali dei tag, vedi che alla fine della riga dove dice "$query=..." manca un ->"<- (virgolette), non so se è quello l'errore ma è pur sempre un errore... 😄


  • User Attivo

    Ho trovato la cappella che ho fatto...non avevo inserito id...che stupido che sono...però non ha cambiato le cose, mi dà sempre lo stesso errore, sembrerebbe un errore di connessione...

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '<?php
    mysql_connect($62,$Sql,$password)' at line 1 
    ```Non vorrei che sbagliassi dall'inizio, tieni conto che non ho mai usato un database...per connettermi io apro il pannello metto username e password e stop...
    Trovando scritto quà e là mi sembrava che dovessi aggiungere un qualcosa per la connessione o sbaglio? mi sembra non ne sono sicuro...

  • User Attivo

    Gli errori che segnala MySql sono abbastanza chiari, e qui segnala un errore appena incontra il carattere "<", così a naso sembra che tu stia inserendo il codice di una pagina php nel pannello di mysql come se fosse una query...
    La pagina è scritta correttamente, devi salvarla in un file .php e lanciarlo da browser. Non è un errore di connessione, sembra proprio che sbagli a passargli il comando a mysql, come se gli passassi l'intero codice invece di una query, così sembra...


  • User Attivo

    @momino said:

    Gli errori che segnala MySql sono abbastanza chiari, e qui segnala un errore appena incontra il carattere "<", così a naso sembra che tu stia inserendo il codice di una pagina php nel pannello di mysql come se fosse una query...
    La pagina è scritta correttamente, devi salvarla in un file .php e lanciarlo da browser. Non è un errore di connessione, sembra proprio che sbagli a passargli il comando a mysql, come se gli passassi l'intero codice invece di una query, così sembra...
    Ti ringrazio momino, allora...in che cosa sbaglio? io non gli passo l'intera query ma lo stesso codice l'ho salvato nel blocco note come elenco_clienti.php, poi dal database facendo sfoglia e prendendo il file elenco_clienti.php lo eseguo ed esce fuori quell'errore...ma non capisco dove sbaglio.
    Altrimenti come devo fare? mi puoi dire passo passo? poi una volta capito il meccanismo...abbi pazienza...
    Grazie!


  • User Attivo

    Assolutamente è il metodo sbagliato! Quella pagina .php fa lanciata da browser, apri Firefox (spero che tu non abbia Internet Explorer) e digiti nella barra degli indirizzi l'url della pagina "elenco_clienti.php".
    Non va importata nel database da pannello di controllo mysql.


  • User Attivo

    Inizio a capire...un pochettino...solo che io ho internet explorer...e quindi non si può fare? miseriaccia!!!