Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    dare un formato diverso ad ogni <tr>

    Ciao a tutti! Ho cercato un pò in questo magnifico forum una risposta alle mie preghiera; ma non ho trovato niente a prima vista.
    Vi chiedo di aiutarmi in questo: Ho il mio codice per creare una <table> dove ad ogni <tr> caricare un record della mia tabella news. Vorrei comunque solo caricare le ultime 4 news inserite. Il codice che ho mi crea bene la <table> dove ogni <tr> ha come <td> data, titolo e una substringa di testo. Ma.. vorrei dare un aspetto più cattivo a questa <table> cambiando il colore di background ad ogni riga, cioè la prima e la terza riga (news) con un colore diverso rispetto alla seconda e quarta riga. Per adesso faccio questo:

    $oid1 = mysql_query("SELECT id,
    titolo_it as titolo,
    testo_it as testo
    FROM news
    WHERE id=1
    LIMIT 1");
    if (!$oid1) {
    echo"<h2>Errore database</h2>" ;
    }

    //Inizio table per i records


    while($news = mysql_fetch_array($oid1)) {



    $content1 = "<tr bgcolor='#ffffff'>\n";
    $content1 .= "<td width='35%'><p class='explaintitle'>[img]html/img/bullet_news.gif[/img]<a href=\"mostranews.php?id=" .$news['id']. "\">" .$news['titolo']. "</a></p>";
    $content1 .= "</td>";
    $content1 .="<td><p class='linktitle'>" .substr($news['testo'],0,50). "...</p>";
    $content1 .= "</td></tr>\n";

    }


    $oid2 = mysql_query("SELECT id,
    titolo_it as titolo,
    testo_it as testo
    FROM news
    LIMIT 1");
    if (!$oid2) {
    echo"<h2>Errore database</h2>" ;
    }

    while($news = mysql_fetch_array($oid2)) {


    $content2 = "<tr bgcolor='#d7e4f5'>\n";
    $content2 .= "<td><p class='explaintitle'>[img]html/img/bullet_news.gif[/img]<a href=\"mostranews.php?id=" .$news['id']. "\">" .$news['titolo']. "</a></p>";
    $content2 .= "</td>";
    $content2 .="<td><p class='linktitle'>" .substr($news['testo'],0,50). "...</p>";
    $content2 .= "</td></tr>\n";

    }

    dove dopo faccio echo $content1 e di $content2

    ciò do una formatazione diversa alle <tr> a seconda della query eseguita; ma mi sembra pessante e poco pulito fare una query por ogni record (news) per poi stampare o $content1 o $content2. La mia domanda è questa: E' possibile in qualche maniera controllare l'indice dell'interazione del ciclo while e a seconda è dispari o pari dare un formato alla <tr> o meglio ancora sapete di uno script fatto apposta per me
    Spero... datemi una mano..

  2. #2
    puoi utilizzare una var conteggio ed un if all'interno del while di estrazione che controlla il numero della var conteggio e cambia colore a seconda se pati o dispari...
    un po' spartano ma..
    Soluzioni Hosting
    http://www.crabservice.com

  3. #3
    Ciao sonoria..
    Ho già provato questa soluzione spartana; ma non ci sono riuscito.
    Se imposto una variabile $volte = 1 e poi l'incremento dentro un if() per poi ricontrollare il suo valore (pari o dispari) non funziona granchè perchè mi stampa due volte la stesso record con formato diverso o radoppia i record.

  4. #4
    Utente di HTML.it L'avatar di Il_Drugo
    Registrato dal
    May 2006
    Messaggi
    1,220
    Codice PHP:
    $count 1;
    while (.....)
    {
       if(
    $count == 0)
       {
            print(
    "<tr classe='pari'></tr>);
       }
       else
       {
            print("
    <tr classe='dispari'></tr>");
       }
       
    $count++;


  5. #5
    Ciao Drugo, grazie dell'aiuto.. proverò implementare il tuo codice non appena possibile e ti faccio sapere com'è andata.
    di nuovo, grazie...

  6. #6
    come!?
    prova così...

    function pari($n)
    {
    if ($n % 2 ==0)
    return true;
    else
    return false;
    }
    for ($i=1; $i<=10; $i++)
    if (pari($i))
    {
    echo "Il numero $i e' pari";
    echo "
    ";
    }
    else
    {
    echo "Il numero $i e' dispari";
    echo "
    ";
    }


    ovviamente sistemala per il tuo script

    while(query)
    $n +=1;
    etc...
    Soluzioni Hosting
    http://www.crabservice.com

  7. #7
    perchè non fai cosi:

    Codice PHP:
    $sfondo = ($sfondo == '#FFFFFF') ? '#000000' '#FFFFFF';

    echo 
    "<tr background-color=\"$sfondo\"><td>dati</td></tr>"

    Ciao!

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.