Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    138

    Un aiutino su un form...

    ciao a tutti...sto cercando di modificare un vecchio form per uploadare dati provenienti da un file CSV in un DB mysql

    il form "com'era" funziona regolarmente...ora però dovrei fare in modo che la tabella dove vengono inseriti i dati venga selezionata grazie ad una select formata da due campi...quindi ho creato una prima pagina con una select con i dati da passare per far riconoscere la tabella
    nella seconda pagina viene inserito il file .csv da utilizzare per ricavare i dati che vengono poi inseriti nella terza pagina...
    il problema è che i dati della SELECT non me li passa in terza pagina...
    sono sicuro che il problema sia quello perchè se metto il nome della tabella nell'insert (togliendo quindi le variabili) il form funziona...
    ecco i codici di pagina2 e pagina3 (in pagina 2 ho aggiunto un echo con le 2 variabili per vedere se passavano)
    i dati dalla prima pagina passano alla seconda senza problemi
    Codice PHP:
     <HTML>
    <HEAD>
    <title>Inserimento Gare</title></HEAD>
    <BODY bgcolor="WHITE" link="Blue" vlink="BLUE">
     <font face="Verdana, Arial, Helvetica, sans-serif">Con questa pagina si inseriscono i risultati di una gara nel DB</font>
      

    <font face="Verdana, Arial, Helvetica, sans-serif">A questo punto:

        - cercate il file (che si chiamer&agrave; piloti.csv)
        appena ottenuto con il tasto SFOGLIA/BROWSE che trovate qui sotto;

        - cliccate su &quot;INVIA IL FILE&quot;</font></p>
      

    </p>
      
     <?
    $lega 
    $_GET['lega'];
    $stagione $_GET['stagione'];

    echo 
    "$lega";
    echo 
    "$stagione";
    ?>

    <form action="agg_gare2.php" method="post" enctype="multipart/form-data">
     
      

    <font size="+1" face="Verdana, Arial, Helvetica, sans-serif">Seleziona il FILE da caricare:</font>

    <input type="file" name="upfile">




    <input type="hidden" name="MAX_FILE_SIZE" value="10000">
    <input type="hidden" name="lega" value="<?php $lega;?>">
    <input type="hidden" name="stagione" value="<?php $stagione;?>">
    <input type="submit" value="Invia il file">
    </p></form>



    <font face="Verdana, Arial, Helvetica, sans-serif">Se incontrate dei problemi 
      contattate il [email="bobolix@virgilio.it"]webmaster.[/email]..

      </font> </p>
    </BODY>
    </HTML>
    pagina 2

    Codice PHP:
    <?
    $lega 
    $_POST['lega'];
    $stagione $_POST['stagione'];

    // QUESTE RIGHE RENDONO LO SCRIPT COMPATIBILE CON LE VERSIONI
    // DI PHP PRECEDENTI ALLA 4.1.0
    if(!isset($_FILES)) $_FILES $HTTP_POST_FILES;
    if(!isset(
    $_SERVER)) $_SERVER $HTTP_SERVER_VARS;

    /********************* VARIABILI DA SETTARE ********************/
    // Directory dove salvare i files Uploadati ( chmod 777, percorso assoluto)
    $upload_dir $_SERVER["DOCUMENT_ROOT"] . "/upload";

    // Eventuale nuovo nome da dare al file uploadato
    $new_name "";

    //$allowed_types = array("text/csv");

    // Se $new_name è vuota, il nome sarà lo stesso del file uploadato
    $file_name = ($new_name) ? $new_name $_FILES["upfile"]["name"];

    if(
    trim($_FILES["upfile"]["name"]) == "") {

    die(
    "Non hai indicato il file da uploadare !");

    }

    //if(@is_uploaded_file($_FILES["upfile"]["tmp_name"])) {

    //if(!in_array($_FILES["upfile"]["type"],$allowed_types)) {

    //die("Il file non è di un tipo consentito, sono ammessi solo i seguenti: " . implode(",", //$allowed_types) . ".");
    //echo "<a href=\"java script:history.go(-1);\">Torna Indietro</a>
    ";
    //exit;
    //}
    //}

    //e poi qui recuperi il file...elimini tutti i dati dalla tabella


    $_DATAFILE=file($_FILES['upfile']['tmp_name']);
    include("
    config.inc.php" );
    $db = mysql_connect("$db_host", "$db_user", "$db_password" ) or die("Problem connecting" );
    mysql_select_db("
    $db_name",$db)or die("Problem selecting database" );


    while(list(
    $key,$_VALUES)=each($_DATAFILE)) {
    $_PARAMS=split(";",$_VALUES);
    //Qui aggiunge i vari parametri
    while (list(
    $key,$value)=each($_PARAMS)) {
    $value=str_replace("#","\#",$value);
    $value=str_replace("--","\--",$value);
    $value=str_replace("'","'",$value);
    $value=str_replace(",",".",$value);
    $_PARAMS[$key]=$value;
    }

    $_querysql="INSERT INTO {$lega}{$stagione}gare (race_id, pos_gara, nome_pilota, auto, giri_gara, tempo_gara, gap_gara, fastest_laptime, fastest_lapnr, pos_quali, tempo_quali, gap_quali) VALUES ('{$_PARAMS[0]}','{$_PARAMS[1]}','{$_PARAMS[2]}','{$_PARAMS[3]}','{$_PARAMS[4]}','{$_PARAMS[5]}','{$_PARAMS[6]}','{$_PARAMS[7]}','{$_PARAMS[8]}','{$_PARAMS[9]}','{$_PARAMS[10]}','{$_PARAMS[11]}')";

    if(!
    mysql_query($_querysql,$db)) {
    echo 
    "$lega  $stagione Errore, modifica dei record non riuscita
    "
    ;
    exit;
    } else {
    echo 
    "<font color='DARKRED' class='risultatitabebig' face='verdana'>Gara Inserita Nel DB</a></font>
    "
    ;
    }
    }

    echo 
    "<hr>";




    ?>
    se
    INSERT INTO {$lega}{$stagione}gare

    lo faccio diventare GTR01gare (ovvero il nome di una tabella specifica)eliminando i dati provenienti dalla SELECT iniziale tutto funziona...

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2000
    Messaggi
    138
    risolto...
    il problema era nel nome della tabella in cui fare INSERT...

    ora dopo aver passato $lega $stagione in pagina 3
    ho fatto
    $tabella = $lega.$stagione.gare;
    ma $tabella diventava XXX XXX gare con degli spazi in mezzo...
    allora ho aggiunto
    $tabella = str_replace(" ","",$tabella);

    e FUNZIONA!!!!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.