Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072

    Recupeare valori da input box della pagina

    ciao a tutti, sono riuscito a trovare alcuni esempi funzionanti per creare un file csv (o excel) con i dati di una query.... tutto OK

    come posso però inserire nella query un valore recuperato da un input box presente nella pagina?



    <?php

    // DB Connection here

    define ("DB_HOST", "localhost:3307");
    define ("DB_USER", "root");
    define ("DB_PASSWORD", "root");
    define ("DB_DATABASE", "db");


    mysql_connect (DB_HOST, DB_USER, DB_PASSWORD) or die (mysql_error());
    mysql_select_db (DB_DATABASE) or die (mysql_error());


    $select = "SELECT * FROM tabella"; // come posso mettere dei valori recuperati dalla pagina?? Es: WHERE CAMPO = TextBox della pagina

    $export = mysql_query ( $select ) or die ( "Sql error : " . mysql_error( ) );

    $fields = mysql_num_fields ( $export );

    for ( $i = 0; $i < $fields; $i++ )
    {
    $header .= mysql_field_name( $export , $i ) . "\t";
    }

    while( $row = mysql_fetch_row( $export ) )
    {
    $line = '';
    foreach( $row as $value )
    {
    if ( ( !isset( $value ) ) || ( $value == "" ) )
    {
    $value = "\t";
    }
    else
    {
    $value = str_replace( '"' , '""' , $value );
    $value = '"' . $value . '"' . "\t";
    }
    $line .= $value;
    }
    $data .= trim( $line ) . "\n";
    }
    $data = str_replace( "\r" , "" , $data );

    if ( $data == "" )
    {
    $data = "\n(0) Records Found!\n";
    }

    header("Content-type: application/octet-stream");
    header("Content-Disposition: attachment; filename=your_desired_name.xls");
    header("Pragma: no-cache");
    header("Expires: 0");
    print "$header\n$data";

    ?>



    graaaazie

  2. #2
    I dati della pagina li invii in POST o in GET?
    Mirko Agrati
    WEB : http://mirkoagrati.110mb.com
    RSS : http://feeds.feedburner.com/MirkoAgratiArticoli

  3. #3
    Mah! proviamo a spararne una..

    Codice PHP:
    if(isset($HTTP_GET_VARS['TextBox']) || isset($HTTP_POST_VARS['TextBox']) )
    {
       
    $TextBox = ( isset($HTTP_POST_VARS['TextBox']) )
                        ? 
    htmlspecialchars($HTTP_POST_VARS['TextBox'])
                        : 
    htmlspecialchars($HTTP_GET_VARS['TextBox']);
    }
    else
    {
       
    $TextBox 'NULL';

    e la query diventa
    Codice PHP:
    $select "SELECT * FROM `tabella` WHERE `CAMPO` = '$TextBox'; 
    Domanda: Ma questo script funziona?

  4. #4
    Ho provato prima lo script non funzionava. Per via delle variabili $header e $data
    che non erano definite. Un errore che alcuni server non lo considerano nemmeno.
    (Il mio invece si).
    Ho aggiunto 2 semplici righe e va tutto a meraviglia! Grazie!

    Codice PHP:
    <?php
    define 
    ("DB_HOST""localhost");
    define ("DB_USER""user");
    define ("DB_PASSWORD""pwd");
    define ("DB_DATABASE""db");

    mysql_connect (DB_HOSTDB_USERDB_PASSWORD)
                                  or die (
    mysql_error());
    mysql_select_db (DB_DATABASE) or die (mysql_error());

    # Qui dovresti aggiungere queste righe.
    #
    # if(isset($HTTP_GET_VARS['TextBox']) || isset($HTTP_POST_VARS['TextBox']) )
    # {
    #   $TextBox = ( isset($HTTP_POST_VARS['TextBox']) )
    #                    ? htmlspecialchars($HTTP_POST_VARS['TextBox'])
    #                    : htmlspecialchars($HTTP_GET_VARS['TextBox']);
    # }
    # else
    # {
    #    $TextBox = 'NULL';
    # }
    #
    # E poi sostituire la Query SQL.

    $select "SELECT * FROM `tabella`";
    $export mysql_query ($select)
                or die (
    "Sql error : " mysql_error( ));
    $fields mysql_num_fields ($export);
    $header "";
    for ( 
    $i 0$i $fields$i++ )
    {
        
    $header .= mysql_field_name$export $i ) . "\t";
    }

    while( 
    $row mysql_fetch_row$export ) )
    {
        
    $line '';
        foreach( 
    $row as $value )
        {
            if ( ( !isset( 
    $value ) ) || ( $value == "" ) )
            {
                
    $value "\t";
            }
            else
            {
                
    $value str_replace'"' '""' $value );
                
    $value '"' $value '"' "\t";
            }
            
    $line .= $value;
        }
        
    $data "";
        
    $data .= trim$line ) . "\n";
    }
    $data str_replace"\r" "" $data );

    if ( 
    $data == "" )
    {
        
    $data "\n(0) Records Found!\n";
    }

    header("Content-type: application/octet-stream");
    header("Content-Disposition: attachment; filename=your_desired_name.xls");
    header("Pragma: no-cache");
    header("Expires: 0");

    print 
    "$header\n$data";
    ?>

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Grazie infinite per l'aiuto... questa sera faccio alcune prove partendo dal tuo esempio.

    Grazie ancora!!!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Scusa ma ho due problemini

    come devo realizzare l'area 'HTML corrispondente (visualizzare e gestire i due textbox nel form)?? (riallego il codice PHP che ho modificato), ipotizzando di avere due textbox da passare alla query?? e come aggiungo le due variabili dei due textbox nella mia select (scusa la domanda banale!)


    Grazie

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Mi ero dimenticato di postare il codice PHP modificato


    Codice PHP:

    <?php 


    function safe_set(&$var_true,$var_false=""

            if (isset (
    $var_true)) 
            { return 
    true; } 
            else 
            { 
                    
    $var_true $var_false
                    return 
    false
            } 






    define ("DB_HOST""localhost:3307"); 
    define ("DB_USER""root"); 
    define ("DB_PASSWORD""root"); 
    define ("DB_DATABASE""db"); 

    define ("DB_TABLE""tabella_prova"); 


    define ("CSV_FILENAME""excelFname.csv"); 
    define ("CSV_FIELD_SEPARATOR"";"); 
    define ("CSV_ROW_SEPARATOR""\r\n"); 


    mysql_connect (DB_HOSTDB_USERDB_PASSWORD) or die (mysql_error()); 
    mysql_select_db (DB_DATABASE) or die (mysql_error()); 


    ... 
    come posso gestire il recupero di due text box?? e come sarà l'HTML della pagina???

     if(isset($HTTP_GET_VARS['
    TextBox']) || isset($HTTP_POST_VARS['TextBox']) ) 
     { 
       $TextBox = ( isset($HTTP_POST_VARS['
    TextBox']) ) 
                        ? htmlspecialchars($HTTP_POST_VARS['
    TextBox']) 
                        : htmlspecialchars($HTTP_GET_VARS['
    TextBox']); 
     } 
     else 
     { 
        $TextBox = '
    NULL'; 
     }


    .... come posso modificare la select con i due campi recuperati dall'
    HTML???

    $rs mysql_query ("SELECT * FROM " DB_TABLE) or die (mysql_error()); 
    $fields_num mysql_num_fields ($rs); 


    $field_names = array (); 
    $cvs ""


    for (
    $i 0$i $fields_num$i++) 

            
    $field_names[] = mysql_field_name ($rs$i); 
            if (
    mysql_field_name ($rs,$i) != "ID"
            { 
    $cvs .= mysql_field_name($rs,$i) . CSV_FIELD_SEPARATOR; } 
            else 
            { 
    $cvs .= "Index" CSV_FIELD_SEPARATOR; } 





    $cvs .= CSV_ROW_SEPARATOR

    while (
    $row mysql_fetch_assoc ($rs)) 

            foreach (
    $field_names as $field_name
            { 
                    
    safe_set ($row[$field_name], ""); 
                    
    $cvs .= '"' $row[$field_name] . '"' CSV_FIELD_SEPARATOR
            } 
            
    $cvs .= CSV_ROW_SEPARATOR






    header ("Content-type: application/vnd.ms-excel;"); 
    header ("Accept-Ranges: bytes"); 
    header ("Content-Disposition: attachment; filename=".CSV_FILENAME.";"); 

    print (
    $cvs); 
    ?>

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Niente??

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    3,072
    Sempre piu disperata!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.