Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [php] come impostare while

    Ciao a tutti,

    faccio una select su una tabella "fatture", e stampo i dati a video su una tabella

    mano a mano che i dati vengono estratti, io vorrei confrontare i campi:

    "numerofattura"
    "datafattura"
    "fornitore"

    con quelli estratti precendemente perchè, se il valore corrisponde, stampo una riga dello stesso colore, se il colore non corrisponde stampo la riga di un altro colore:


    esempio (qui per comodità confronto solo il numero di fattura..)

    id --- numerofattura
    1 --- 20
    2 --- 20
    3 --- 21
    4 --- 22
    5 --- 22
    6 --- 23
    7 --- 24

    quando stampo la taballa a video dovrei ottenere i seguenti colori:

    riga 1 = giallo
    riga 2 = giallo
    riga 3 = verde
    riga 4 = giallo
    riga 5 = giallo
    riga 6 = verde
    riga 7 = giallo

    cosa devo inserire nel ciclo:

    Codice PHP:
    while ($row=mysql_fetch_array($res))
    {
    //.......
    //istruzioni per scelta colore
    //........

    grazie in anticipo per la'iuto
    aquatimer2000

  2. #2

  3. #3
    un if a me non bastato... puoi postare la tua soluzione ?
    aquatimer2000

  4. #4
    Che cosa significa "un if a me non bastato"?
    Come lo hai utilizzato?
    Puoi postare la soluzione che hai provato e non ha funzionato?

  5. #5
    Utente di HTML.it L'avatar di telegio
    Registrato dal
    Sep 2001
    Messaggi
    2,591
    ma devi confrontarli ad UN SOLO VALORE, oppure a diversi valori.. e da dove li prendi questi valori, in caso?
    nel primo caso ti basta un if, nell'altro tocca vedere..

  6. #6
    i valori da confrontare sono tutti e tre e devono essere tutti e tre verificati: io ho provato con:

    Codice PHP:
    while($row=mysql_fetch_array($res))
    {
       if(
    $row[datafattura]=="$rif_datafatturaAND $row[fattura_acquisto]=="$rif_fatturaAND $row[fornitore]=="$rif_fornitore")
       {
          
    $sfondo="colore1"
       
    }
       else
       {
          
    $sfondo="colore2";
       }

       
    //stampo la riga con con bgcolor=$sfondo

       //setto i valori di riferimento per il ciclo successivo;
       
    $rif_fornitore=$row[fornitore];
       
    $rif_fattura=$row[fattura_acquisto];
       
    $rif_datafattura=$row[datafattura];

    naturalmente non funziona perchè il confronto dei valori della prima riga avviene con delle variabili vuote ed inoltre i valori con id "4" e "5" (vedi mio primo post) vengono stampati con colore diverso..
    aquatimer2000

  7. #7
    Per cominciare ti invito ad abilitare la visualizzazione di tutti gli errori in fase di sviluppo e risolvere tutti i notice che vengono sollevati.

    Secondariamente, il problema si può risolvere molto facilmente "inizializzando" le variabili prima del ciclo while:

    Codice PHP:
    $rif_fornitore '';
    $rif_fattura '';
    $rif_datafattura '';

    while (...) { 
    Per quanto riguarda i record 4 e 5, il comportamento è corretto. E' esattamente quello che deve fare tale codice. Se ti aspetti un comportamento diverso, devi definire meglio il problema.

    Ad esempio perchè solo i record 3 e 6 sono di colori diversi e non anche il 7?

  8. #8
    anche inizializzando le variabili non funziona.
    quello che voglio ottenere è (a mio modo di vedere) molto chiaro:

    - scorro il primo record e gli assegno il valore sfondo1;
    - scorro il secondo record, confronto i dati con quelli del primo, se sono uguali utilizzo sfondo1 se no, sfondo2
    - scorro il terzo record, confronto i dati con quelli del del secondo, se sono uguali utilizzo lo stesso sfondo del record 2, sennò alterno (cioè se record2=sfondo2 allora record3=sfondo1)

    e via dicendo...
    aquatimer2000

  9. #9
    Studiati questo codice:


    Codice PHP:
    <?php 
    $rif_fornitore   
    '';
    $rif_fattura     '';
    $rif_datafattura '';

    $bool false;

    while(
    $row mysql_fetch_array($res)) {

        if ((
    $row['datafattura']      != $rif_datafattura) ||
            (
    $row['fattura_acquisto'] != $rif_fattura) ||
            (
    $row['fornitore']        != $rif_fornitore)) {
            
    $bool = !$bool;
        }

        
    $sfondo $bool 'colore1' 'colore2';

        
    //stampo la riga con con bgcolor=$sfondo

        
    $rif_fornitore   $row['fornitore'];
        
    $rif_fattura     $row['fattura_acquisto'];
        
    $rif_datafattura $row['datafattura'];
    }

    ?>

  10. #10
    ok provo e ti dico !
    grazie per la pazienza !
    aquatimer2000

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.