Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    180

    Idee per ottimizzazione codice

    Salve ragazzi, volevo chiedervi un aiuto per quanto riguarda l'ottimizzazione di una porzione di codice. Ho una tabella composta da 21 (7x3) celle che a seconda di due if, deve scegliere tra 3 immagini per valorizzare ogni singola cella. La verifica ovviamente viene fatta sulla tabella di un db, leggendo le varie righe, 21 per l'appunto.
    codice:
    <table border='1'> <tr>
    
    <td style="height: 20;"><a href="#1"> <img src="<?php 
            if ($ris1[persone]=="u"){
                echo 'gif/p1.gif'; 
            }       
            else
            {  
            
                if ($ris1[p]=="")
                {
                    echo 'gif/1.gif'; 
                }
                else
                {
                    echo 'gif/1.gif';
                }
            }
             ?>"> </a></td>
             
             
             
             
             <td>
    
            <a href="#2"> <img src="<?php 
            if ($ris2[persone]=="a"){
                echo 'gif/p2.gif'; 
            }       
            else
            {  
            
                if ($ris2[p]=="")
                {
                    echo 'gif/2.gif'; 
                }
                else
                {
                    echo 'gif/2.gif';
                }
            }
             ?>"> </a>
    
    
             
             
             
             
             
             </td><td>
             
            <a href="#3"> <img src="<?php 
            if ($ris3[persone]=="a"){
                echo 'gif/p3.gif'; 
            }       
            else
            {  
            
                if ($ris3[p]=="")
                {
                    echo 'gif/3.gif'; 
                }
                else
                {
                    echo 'gif/3.gif';
                }
            }
             ?>"> </a>
    
    
             
             
             
             
             
    ecc........
             
             
             </td><td><img src="gif/4.gif"></td>
    Ripetere tutto sto papello per 21 volte mi pare abbastanza una cappellata e di sicuro ci deve essere una soluzione più elegante. Avete qualche consiglio da darmi?

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    posta un po' del codice dove valorizzi $ris1, $ris2 e $ris3
    mi sa che l'ottimizzazione può cominciare da prima

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    180
    Hai voglia se non può essere ottimizzato, a partire proprio da quello che dici tu. Io non sono mai riuscito ad utilizzare il while col fetch array per scorrere i risultati nei posti diversi dove mi servivano i relativi dati. Cmq vabbè.. Un giorno che avrò tempo farò qualche prova per capire al meglio

    codice:
    $bool1 = "SELECT * FROM $day WHERE t= 1";$risbool1 = mysql_query($bool1, $connessione) or die (mysql_error());
    $ris1=mysql_fetch_array($risbool1);
    
    
    $bool2 = "SELECT * FROM $day WHERE t= 2";
    $risbool2 = mysql_query($bool2, $connessione) or die (mysql_error());
    $ris2=mysql_fetch_array($risbool2);
    
    
    $bool3 = "SELECT * FROM $day WHERE t= 3";
    $risbool3 = mysql_query($bool3, $connessione) or die (mysql_error());
    $ris3=mysql_fetch_array($risbool3);

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    A occhio e croce direi così
    Codice PHP:
    <?php
    $query 
    "SELECT * FROM $day";

    $result mysql_query($query);

    while ( 
    $row mysql_fetch_assoc($result) )
    {
    ?>
        <td style="height: 20;">
            <a href="#<?php echo $row['t'?>">
                <img src="<?php 
                    
    if ($row['persone']=="u")
                    {
                        echo 
    'gif/p'.$row['t'].'.gif'
                    }       
                    else
                    {  
                    
                        if (
    $row['p']=="")
                        {
                            echo 
    'gif/'.$row['t'].'.gif'
                        }
                        else
                        {
                            echo 
    'gif/'.$row['t'].'.gif';
                        }
                    }
                
    ?>">
            </a>
        </td>
    <?php
    }
    ?>
    Comunque passa alle istruzioni mysqli_ oppure a PDO perché le istruzioni mysql_ sono deprecate e presto non funzioneranno più, sui provider più aggiornati già è così.
    Ultima modifica di Alhazred; 05-04-2014 a 18:49

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    180
    Grazie mille, e senti, ho il problema che ogni sette td devo spezzare con una chiusura di </tr> ed una riapertura per altre sette celle. Come posso fare?

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Devi usare una variabile contatore, parti dal valore 1 ed incrementi prima della chiusura del while.
    Per decidere se devi mettere il </tr><tr> fai

    if ( $i % 7 == 0 )
    //metti la chiusura e riapertura del <tr>

    altrimenti non fai niente.

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    180
    Grazie davvero per il tuo aiuto!! Mi hai semplificato di molto la vita! Mi sto rendendo sempre più conto che combinando efficacemente php con html si può fare di tutto!!

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.