Visualizzazione risultati 1 fino 24 di 24

Discussione: [PHP] Form php da mysql

  1. #1
    emiftp non è connesso Utente giovane
    Data registrazione
    10-11-2004
    Messaggi
    38

    Predefinito [PHP] Form php da mysql

    Salve a tutti,
    Spero qualcuno mi possa aiutare perché a parte che non posso dire di conoscere php ma è da un po' che stavo cercando di fare quanto in oggetto ma senza successo.
    Ho una pagina php in cui l'utente deve andare ad alimentare alcuni campi i cui risultati devono finire in un csv. La pagina index è ora composta in questa maniera:

    Codice PHP:

    <FORM method="POST" action="testata.php">

    <
    p>Codice cliente:
    <
    input name="a1" type="text" id="eta" onmouseup="textbox(this)"/>
    <
    noscript><input type="text" name="text" /> (Fill this in,
    if
    you've checked the radio next to this)</noscript>
    </p>
    <p>Codice destinatario:
    <input name="a2" type="text" id="eta">
    </p>

    <p>Testo di riferimento:
    <input name="a3" type="text" id="eta">
    </p>

    <INPUT type="submit" value="Invia">
    il php testata è così:


    Codice PHP:

    <?php
    $open
    = fopen('file.csv','a');
    fwrite( $open, "\nT;".$_POST['a1'].";".$_POST['a2'].";".$_POST['a3'].";" );
    fclose($open);
    ?>
    il file csv creato viene fuori in questa maniera (è un esempio):

    T;300;e;r;

    In un db mysql ho una tabella con due colonne:
    codice articolo, descrizione articolo

    Vorrei nell'index.php avere un altro campo in cui l'utente va a scegliere il codice articolo attingendo dal db (deve visualizzare sia la colonna codice prodotto che la colonna descrizione), quindi deve essere inserito nel csv il codice articolo (solo questo e non la descrizione).

    Grazie mille in anticipo a chi mi aiuterà.

  2. #2
    Guest

  3. #3
    emiftp non è connesso Utente giovane
    Data registrazione
    10-11-2004
    Messaggi
    38

    Predefinito

    Citazione Originalmente inviato da neoscript Visualizza messaggio

    Grazie mille per la risposta!

    Volevo dire che sono riuscito (prima del tuo post) a creare il form in cui l'utente deve andare a selezionare dalla tabella, è una cosa di questo genere:


    Codice PHP:
    <?
    $username
    ="root";
    $password="pass";
    $database="database";

    mysql_connect(localhost,$username,$password);
    @
    mysql_select_db($database) or die( "Unable to select database");
    $query="SELECT * FROM anapro";
    $result=mysql_query($query);

    $num=mysql_numrows($result);

    mysql_close();

    echo
    " <b>Codice prodotto:</b>&nbsp;\n";
    echo
    " <select name='db' onChange='submit(this.form)'>\n";
    while(
    $row = mysql_fetch_row( $result )) {
    $sel = ( $db === $row[0] ) ? "id='sel' selected" : "";
    printf( " <option %s value='%s'>%s</option>\n", $sel, $row[0], $row[0] );
    }
    echo
    " </select>\n";

    ?>
    Solo che mi riesce a visualizzare solo la prima colonna, ma sopratutto non so come andargli a dire in php: metti nel csv ciò che l'utente ha selezionato in questo form...

  4. #4
    Guest

    Predefinito

    Per quanto riguarda il leggere cosa ha scelto l'utente quando invia il form e quindi usarlo nel salvare il cvs ti basta un semplice $_POST['db']; come hai fatto per gli altri campi del form.

    Mentre per il discorso delle tabelle, come hai potuto notare l'array $row ha un'indice, tu usi l'indice [0], modificalo fino a quando non trovi quello della colonna che ti serve tipo [1], [2], etc.


  5. #5
    emiftp non è connesso Utente giovane
    Data registrazione
    10-11-2004
    Messaggi
    38

    Predefinito

    Citazione Originalmente inviato da neoscript Visualizza messaggio
    Per quanto riguarda il leggere cosa ha scelto l'utente quando invia il form e quindi usarlo nel salvare il cvs ti basta un semplice $_POST['db']; come hai fatto per gli altri campi del form.

    Mentre per il discorso delle tabelle, come hai potuto notare l'array $row ha un'indice, tu usi l'indice [0], modificalo fino a quando non trovi quello della colonna che ti serve tipo [1], [2], etc.

    Intanto volevo ringrazierti nuovamente, apprezzo molto il tuo aiuto, anzi se passi dalle parti di Bologna ti offro una biraa (se non sei astemio ovviamente ;) )

    Per il discorso che viene visualizzato solo la prima colonna, in effetti è perché io usavo l'indice 0, ma io volevo riuscire a far visualizzare due colonne temporaneamente, diciamo la 0 e la 1, e non una sola.
    Però il valore che deve finire nel csv sarà solo quella della prima colonna ...

  6. #6
    Guest

    Predefinito

    Ah ok, non avevo capito la tua necessità.

    Codice:
      printf( "    <option %s value='%s'>%s %s</option>\n", $sel, $row[0], $row[0], $row[nuovoindice] );
    Così dovrebbe andare. Il valore che viene restituito a php quando l'utente invia il form è quello contenuto in value='...', il resto è solo di visualizzazione.

    Per capire cosa sono gli %s ed eventualmente altri marcatori, dai uno sguardo qui.



    Per la birra caschi male, io sono astemio
    Ultima modifica di neoscript : 11-11-2009 alle ore 11.12.41

  7. #7
    emiftp non è connesso Utente giovane
    Data registrazione
    10-11-2004
    Messaggi
    38

    Predefinito

    Allora, ho sommato i codici:

    Codice PHP:
    <?
    $username
    ="root";
    $password="pass";
    $database="database";

    mysql_connect(localhost,$username,$password);
    @
    mysql_select_db($database) or die( "Unable to select database");
    $query="SELECT * FROM anapro";
    $result=mysql_query($query);

    $num=mysql_numrows($result);

    mysql_close();

    echo
    " <b>Codice prodotto:</b>&nbsp;\n";
    echo
    " <select name='db' onChange='submit(this.form)'>\n";
    while(
    $row = mysql_fetch_row( $result )) {
    $sel = ( $db === $row[0] ) ? "id='sel' selected" : "";
    printf( " <option %s value='%s'>%s</option>\n", $sel, $row[0], $row[0] );
    }
    echo
    " </select>\n";

    ?>

    <FORM method="POST" action="testata.php">


    <INPUT type="submit" value="Invia">
    In testata php ho messo:

    Codice PHP:
    <?php
    $open
    = fopen('file.csv','a');
    fwrite( $open, "\nT;".$_POST['db'].";" );
    fclose($open);
    ?>
    Però nel csv non viene fuori il valore selezionato, nel senso che viene "T;;"

  8. #8
    Guest

    Predefinito

    Posta l'html che genera la pagina con la select, perchè a guardarlo dovrebbe funzionare.

  9. #9
    emiftp non è connesso Utente giovane
    Data registrazione
    10-11-2004
    Messaggi
    38

    Predefinito

    Peccato per la birra, vorrà dire che ti offrirò un caffè (se non sei astemio di caffeina :D )

    Comunque grazie ancora, davvero.

    html che mi chiedi in realtà è il file index.php, il codice è quello che ho postato, cioè:

    Codice PHP:

    <?
    $username
    ="root";
    $password="pass";
    $database="database";

    mysql_connect(localhost,$username,$password);
    @
    mysql_select_db($database) or die( "Unable to select database");
    $query="SELECT * FROM anapro";
    $result=mysql_query($query);

    $num=mysql_numrows($result);

    mysql_close();

    echo
    " <b>Codice prodotto:</b>&nbsp;\n";
    echo
    " <select name='db' onChange='submit(this.form)'>\n";
    while(
    $row = mysql_fetch_row( $result )) {
    $sel = ( $db === $row[0] ) ? "id='sel' selected" : "";
    printf( " <option %s value='%s'>%s</option>\n", $sel, $row[0], $row[0] );
    }
    echo
    " </select>\n";

    ?>

    <FORM method="POST" action="testata.php">


    <INPUT type="submit" value="Invia">

  10. #10
    Guest

    Predefinito

    Io intendo l'html che genera quella pagina php.

    Vada per il caffè

  11. #11
    emiftp non è connesso Utente giovane
    Data registrazione
    10-11-2004
    Messaggi
    38

    Predefinito

    Non ho capito io, scusa.
    Solo non ce l'ho una pagina html che genera quel php.
    Ho una cartelle, ci sono due file, uno è l'index.php, la'ltro il testata.php,
    non ho altro,
    forse è questo il motivo perché non funziona?
    Comunque io sono proprio un distrastro

  12. #12
    Guest

    Predefinito

    Allora, quando visualizzi sul tuo browser la pagina index.php clicca con il destro sulla pagina e dal menù contestuale seleziona Visualizza sorgente pagina e copia il codice che viene restituito.

    Se non riesci a copiarlo qui, posta il link alla pagina con il form.

  13. #13
    emiftp non è connesso Utente giovane
    Data registrazione
    10-11-2004
    Messaggi
    38

    Predefinito

    Ecco qua, scusami ancora:

    Codice HTML:
      <b>Codice prodotto:</b>&nbsp;
      <select name='db' onChange='submit(this.form)'>
        <option  value='3B000'>3B000 ARCOBALENO NEUTRO</option>
        <option  value='FIB500'>FIB500 FIBRE MOKA</option>
        <option  value='BG900'>BG900 tizio</option>
      </select>
    
    
    <FORM method="POST" action="testata.php"> 
    
    
    
    
    <INPUT type="submit" value="Invia">

  14. #14
    Guest

    Predefinito

    A questo punto posta la parte che recupera i dati e salva il file cvs.

    Secondo l'html non ci sono problemi

    @edit: Capito il problema.

    Tu la parte che genera il codice della select l'hai messo fuori dal form.

    Modificalo così:

    Codice PHP:
    <?php
    $username
    ="root";
    $password="pass";
    $database="database";

    mysql_connect(localhost,$username,$password);
    @
    mysql_select_db($database) or die( "Unable to select database");
    $query="SELECT * FROM anapro";
    $result=mysql_query($query);

    $num=mysql_numrows($result);

    mysql_close();
    ?>

    <FORM method="POST" action="testata.php">

    <?
    echo " <b>Codice prodotto:</b>&nbsp;\n";
    echo
    " <select name='db' onChange='submit(this.form)'>\n";
    while(
    $row = mysql_fetch_row( $result )) {
    $sel = ( $db === $row[0] ) ? "id='sel' selected" : "";
    printf( " <option %s value='%s'>%s</option>\n", $sel, $row[0], $row[0] );
    }
    echo
    " </select>\n";
    ?>

    ... Credo che qui ci siano gli altri campi del form ...

    <INPUT type="submit" value="Invia">
    Ultima modifica di neoscript : 11-11-2009 alle ore 12.46.55

  15. #15
    emiftp non è connesso Utente giovane
    Data registrazione
    10-11-2004
    Messaggi
    38

    Predefinito

    Ho provato:
    appena seleziono parte subito a creare il csv senza che io prema invio, putroppo però nel csv non viene riportato quello che avevo selezionato

  16. #16
    Guest

    Predefinito

    Facciamo così: posta il codice della pagina completa che genera il form che quella che crea il cvs.

    Altrimenti non ne veniamo a capo.

  17. #17
    emiftp non è connesso Utente giovane
    Data registrazione
    10-11-2004
    Messaggi
    38

    Predefinito

    Ecco qui.
    Ancora mille grazie per tutto l'aiuto che mi stai dando.

    nella cartella z del mio sito ci sono due files:
    index.php
    testata.php

    appena uno digita http://miosito/z viene naturalmente preso
    l'index.php.

    l'index php è così:

    Codice PHP:

    <?php
    $username
    ="root";
    $password="pass";
    $database="csv";

    mysql_connect(localhost,$username,$password);
    @
    mysql_select_db($database) or die( "Unable to select database");
    $query="SELECT * FROM anapro";
    $result=mysql_query($query);

    $num=mysql_numrows($result);

    mysql_close();
    ?>

    <FORM method="POST" action="testata.php">

    <?
    echo " <b>Codice prodotto:</b>&nbsp;\n";
    echo
    " <select name='db' onChange='submit(this.form)'>\n";
    while(
    $row = mysql_fetch_row( $result )) {
    $sel = ( $db === $row[0] ) ? "id='sel' selected" : "";
    printf( " <option %s value='%s'>%s</option>\n", $sel, $row[0], $row[0] );
    }
    echo
    " </select>\n";
    ?>



    <INPUT type="submit" value="Invia">
    file testata.php


    Codice PHP:

    <?php
    $open
    = fopen('file.csv','a');
    fwrite( $open, "\nT;".$_POST['db'].";" );
    fclose($open);
    ?>
    Vedo ora di trovare il modo di metterle sul mio sito altervista così poi vedere direttamente, stavo provando su un serve rinterno per ora perché non so se il firewall che hanno dove sono mi lascia uscire col ftp


    EDIT:
    Col firewall non riesco a uscire, però visto che comunque avrei avuto il problema del db,
    ho aperto il sito su cui stavo provando,

    è

    http://report.homepc.it/z

    spero che tu riesca ad accedervi perché io non riesco a sapere se effettivamente da fuori ci si riesca
    Ultima modifica di seneca : 12-11-2009 alle ore 17.20.54

  18. #18
    Guest

    Predefinito

    Prova a togliere onChange dalla select e prova a inviare a mano il form...

    @edit: Si ci accedo
    Ultima modifica di neoscript : 11-11-2009 alle ore 16.59.53

  19. #19
    Guest

    Predefinito

    Codice PHP:
    <?php
    $username
    ="root";
    $password="pass";
    $database="csv";

    mysql_connect(localhost,$username,$password);
    @
    mysql_select_db($database) or die( "Unable to select database");
    $query="SELECT * FROM anapro";
    $result=mysql_query($query);

    $num=mysql_numrows($result);

    mysql_close();
    ?>

    <form method="post" action="testata.php">

    <?
    echo " <b>Codice prodotto:</b>&nbsp;\n";
    echo
    " <select name='db'>\n";
    while(
    $row = mysql_fetch_row( $result )) {
    $sel = ( $db === $row[0] ) ? "id='sel' selected" : "";
    printf( " <option %s value='%s'>%s</option>\n", $sel, $row[0], $row[0] );
    }
    echo
    " </select>\n";
    ?>

    <input type="submit" value="Invia">
    </form>
    Prova così...

  20. #20
    emiftp non è connesso Utente giovane
    Data registrazione
    10-11-2004
    Messaggi
    38

    Predefinito

    fatto, ora non c'è più il problema di quando partiva a creare subito il csv, lo crea quando clicco su invia ma nel csv non viene riportato quello che avevo selezionato della tabella :(


    EDIT:
    Ho provato con l'ultimo codice che hai postato, niente da fare,
    nel csv non viene riportato la selezione, viene fuori così infatti:


    T;;
    Ultima modifica di seneca : 12-11-2009 alle ore 17.22.26

  21. #21
    Guest

    Predefinito

    Prova così, nel file che genera il cvs aggiungi un:

    Codice PHP:
    print_r($_POST);
    e posta quello che stampa a video.

  22. #22
    emiftp non è connesso Utente giovane
    Data registrazione
    10-11-2004
    Messaggi
    38

    Predefinito

    ehm ... funziona!!
    Non sono sicuro al 100% perché ora devo mettere tutto assieme, però guarda, io non so proprio come ringraziarti, veramente



    Premesso che non vorrei sembrare di abusare delle tua disponibilità, non è affatto mia intenzione, ti chiedevo secondo te è possibile rendere il campo in cui c'è da selezionare da db obbligatorio?
    Ultima modifica di seneca : 12-11-2009 alle ore 17.23.33

  23. #23
    L'avatar di seneca
    seneca non è connesso Super Moderatore
    Data registrazione
    18-12-2004
    Residenza
    la Città Eterna
    Messaggi
    8,376

    Predefinito

    Citazione Originalmente inviato da emiftp Visualizza messaggio
    è possibile rendere il campo in cui c'è da selezionare da db obbligatorio?
    Non avendo seguito la discussione, intendi che il campo sia da valorizzare obbligatoriamente nel form o nel database?
    Ciao!


    -- Aut Roma Aut Nihil!

  24. #24
    emiftp non è connesso Utente giovane
    Data registrazione
    10-11-2004
    Messaggi
    38

    Predefinito

    Intanto scusa per l'infrazione del regolamento, non mi ero reso conto di questa cosa, non capiterà più
    Inoltre grazie per la risposta.
    Intendo nel php che mi aveva gentilmente postato neoscript, un utente ha la possibilità di selezionare dal db, questo valore selezionato va a finire in un csv, ho inserito nella tabella del db una riga vuota, volevo fare in modo che se qualcuno non cambia per forza questo valore scegliendo di conseguenza un altra riga, il sistema non gli permetesse di andare avanti, nel senso che se l'utente preme invia, se non si è andati a cambiare il menu col db, il sistema gli dice per es "guarda che non hai selezionato quello che dovevi", ti chiedo scusa in anticipo se sto abusando troppo della disponibilità e ti ringrazio nuovamente

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •