Visualizzazione dei risultati da 1 a 4 su 4

Discussione: for each in while

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909

    for each in while

    spero possiate aiutarmi xkè non riesco ad uscirne.

    tramite un ciclo for each mi estraggo dei dati da uno specifico file di testo,
    ora però le cose si comlicano inquanto invece di specificare il singolo file quest'ultimo assume un valore dinamico frutto di un'estrazione tramite ciclo while dal db.

    [code]
    $result = array();
    $i=0;
    $dati = mysql_query("SELECT * FROM table");
    WHILE($rows = mysql_fetch_array($dati)){

    $nome_file="$rows[nome_file_db]"; //valore dinamico

    $file= file("file_test/$nome_file");

    foreach($file as $chiave=>$row){

    if(strstr($row, 'CodValue')){
    $i++;
    $result[$i]['value']= trim(str_replace('CodValue:','',$row));

    $color = str_replace('','',$result[10]['value']);
    }
    }//FINE FOREACH
    }//FINE WHILE

    echo"$color" //stampa a video il risultato di color
    [code]

    purtroppo però così facendo la variabile $color viene sovrascritta con lo stesso valore per "n" volte i dati estratti dal db, invece di assumere "n" valori per quanti sono i records


    Grazie in anticipo.

  2. #2
    Se vuoi salvare piu' valori in una variabile devi usare un'array. Prova con questa versione (non testata):

    Codice PHP:
    $colors = array();

    $query mysql_query("SELECT `nome_file_db` FROM `table`");

    while ( 
    $row mysql_fetch_array($query) ) {
        
    $content file_get_contents('file_test/'.$row['nome_file_db']);

        if ( 
    preg_match('#CodValue:(.*)#'$content$match) ) {
            
    $colors[] = $match[1];
        }
    }

    print_r($colors); 

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    909
    intanto grazie, solo ke ho notato una cosa il preg_match si ferma al primo risultato trovato invece di scorrere tutta la pagina

    diciamo che io nella pagina da ricercare ho più "CodValue"

  4. #4
    Ah allora usa preg_match_all() e unisci $match[1] (che da semplice valore diventa un array) all'array "totale" $colors.

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.