Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    19

    PHP - scrivere su file una variabile

    Salve a tutti,

    Vorrei scrivere sul file out.txt il contenuto della variabile $righe.
    La variabile $righe è inserita in un ciclo while e può essere formata da tante righe prese da un database.

    Purtroppo il codice che segue mi stampa solo l'ultima riga dell'output.

    codice:
                $myFile = "/var/www/test/out.txt";
                $fh = fopen($myFile, 'w') or die("can't open file");
                $content = $righe['text'];
                fwrite($fh, $content);
                fclose($fh);
    Sapreste aiutarmi?
    Grazie!

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Beh, facci anche vedere come la generi la variabile $righe, che a quanto pare è un array.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    19
    Esattamente. Ecco il codice PHP (funzionante) col quale visualizzo nel browser il contenuto della variabile $righe.

    Codice PHP:
    <?
    if(isset($_POST['type'], $_POST['topic'], $_POST['tense'], $_POST['polarity']))
    {
         
    $tipo $_POST['type'];
         
    $argomento $_POST['topic'];
         
    $tempo $_POST['tense'];
         
    $segno $_POST['polarity'];
       foreach (
    $tipo as $key_tipo => $value_tipo)
       {
                foreach (
    $argomento as $key_argomento => $value_argomento)
                {
                         foreach (
    $tempo as $key_tempo => $value_tempo)
                        {
                                 foreach (
    $segno as $key_segno => $value_segno)
                                {
           
    $q_tip_arg_tem_seg "SELECT * FROM entries WHERE type = '".$value_tipo."' AND topic = '".$value_argomento."' AND tense = '".$value_tempo."' AND polarity = '".$value_segno."'";  
           
    $qu_tip_arg_tem_seg mysql_query($q_tip_arg_tem_seg);
           while (
    $righe mysql_fetch_array($qu_tip_arg_tem_seg))
            {
                echo 
    $righe['type']."
    "
    ;
            }
       }
       }
       }
       }
    }
    else
    {
       echo 
    "You forgot to check something."."
    "
    ."Please select at least one type, topic, tense and polarity value."."
    "
    ;
    }
    ?>

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Codice PHP:
    while ($righe mysql_fetch_array($qu_tip_arg_tem_seg))
    {
         echo 
    $righe['type']."
    "
    ;

    Qui non stai salvando tutti i risultati del db nella variabile $righe, ci metti ogni volta un solo risultato e lo sovrascrivi al ciclo successivo.

    Sulla pagina vedi tutti i risultati perché li stampi ad ogni ciclo, se alla fine di tutto facessi un
    print_r($righe)
    ti accorgeresti che c'è davvero solo l'ultimo risultato.

    Ci sono anche altre cose che rivedrei nel tuo codice, io lo scriverei così

    Codice PHP:
    if(isset($_POST['type'], $_POST['topic'], $_POST['tense'], $_POST['polarity']))
    {

        
    //non serve assegnare i vari $_POST['...'] ad altre variabili
        //è solo uno spreco di memoria

        
    $risultato '';
        foreach (
    $_POST['type'] as $key_tipo => $value_tipo)
        {
            foreach (
    $_POST['topic'] as $key_argomento => $value_argomento)
            {
                foreach (
    $_POST['tense'] as $key_tempo => $value_tempo)
                {
                    foreach (
    $_POST['polarity'] as $key_segno => $value_segno)
                    {
                        
    $q_tip_arg_tem_seg "SELECT * 
                                              FROM entries 
                                              WHERE type = '"
    .$value_tipo."' AND 
                                                    topic = '"
    .$value_argomento."' AND 
                                                    tense = '"
    .$value_tempo."' 
                                                    AND polarity = '"
    .$value_segno."'";

                        
    $qu_tip_arg_tem_seg mysql_query($q_tip_arg_tem_seg);
                        
                        while (
    $righe mysql_fetch_array($qu_tip_arg_tem_seg))
                        {
                            
    $risultato .= $righe['type'].PHP_EOL;
                            echo 
    $righe['type']."
    "
    ;
                        }
                    }
                }
            }
        }
    }
    else
    {
        echo 
    "You forgot...";

    Nel file dovrai stampare la variabile $risultato.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    19

    scrittura variabile - risolto

    Grazie Alhazred,

    La tua soluzione funziona perfettamente.
    Ora sul file di testo trovo tutte le righe che vedo anche nel browser.

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.