Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    446

    dividere risultati di una query in 4 colonne

    Come faccio a dividere i risultati di una query in 4 colonne?
    Io avevo pensato a ricavare il numero di righe della query, dividerlo per 4 e sistemare quindi per ogni colonna l'intero del risultato. Nell'ultima quello che avanza.
    Non so bene come tradurre in codice tutto questo. Come devo fare? Forse se usassi questa via dovrei creare una funzione javascript che mi fa questi calcoli.
    Esiste un modo più furbo?

  2. #2
    una cosa del genere...

    Codice PHP:

    echo "<table>";

    while(
    $row mysql_fetch_array($query))
    {
      echo 
    "<tr>";
      for(
    $i 0<= 4i++)
      {
        echo 
    "<td>".$row['tuocampo']."</td>";
      }
      echo 
    "</tr>";
    }
    echo 
    "</table>"

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    446
    intanto grazie per la tua risposta. Una cosa: scrivendo coì io ripeto quattro colonne uguali. Come posso risolvere?

  4. #4
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    Codice PHP:
     $table"<table  width=100 cellpadding=0 cellspacing=0 border=0>"
    $table.= "<tr>"
    $table.=     "<td width=10></td>"
    $table.=     "<td width=20></td>"
    $table.=     "<td width=30></td>"
    $table.=     "<td width=40></td>"
    $table.= "</tr>"
    while(
    $row mysql_fetch_array($query)) { 
      
    $table.= "<tr>"
      for(
    $i 0<= 4i++)  { 
        
    $table.= "<td>".$row['tuocampo']."</td>"
      } 
      
    $table.=  "</tr>"

    $table.=  "</table>";


    echo 
    $table
    cosi le tabelle non si deformano se un campo è più lungo e poi cerca di fare un echo solo... (è anche + pulito )

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    446
    Non va comunque bene perchè mi ripete il contenuto uguale nelle 4 colonne. Io avevo scritto così ma non me li scriveva tutti, me ne saltava alcuni:

    codice:
    <?
    			do 
    			{ ?>
    			  <tr>
    			 <? for($i = 0; $i <= 3; $i++)
    			  { 
    			  if($row_rec_listaclienti = mysql_fetch_assoc($rec_listaclienti)){
    
    			  ?>
    				<td width="15" valign="top"><span class="titolo-scuro">[img]images/arrow_<?php if ($row_rec_schedacliente['ID']==$row_rec_listaclienti['ID']) echo [/img]" width="10" height="12" vspace="1" align="absmiddle"> </span></td>
                    <td width="155" valign="top"><span class="titolo-<?php if ($row_rec_schedacliente['ID']==$row_rec_listaclienti['ID']) echo "nero"; else echo "scuro" ?>"><?php echo $row_rec_listaclienti['nomeCliente']; ?></span></td>
    			 	<td width="18">[img]images/0spacer.gif[/img]</td>
    			 <? } } ?>
    			  </tr>
    			<? }while($row_rec_listaclienti = mysql_fetch_assoc($rec_listaclienti))?>

  6. #6
    Utente di HTML.it L'avatar di Leo15
    Registrato dal
    Sep 2005
    Messaggi
    307
    Cosi` ti salta tutte le righe pari!
    Perche` fai 2 volte
    Codice PHP:
    $row_rec_listaclienti mysql_fetch_assoc($rec_listaclienti
    Quindi butti via una riga ogni due :P

    Prova a togliere il do-while esterno, e metti i tag <tr> dentro il for.

    La disumanità del computer sta nel fatto che, una volta programmato e messo in funzione, si comporta in maniera perfettamente onesta.
    Isaac Asimov

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    446
    grazie, io ho risolto anche se in maniera meno elegante facendo un while sulla riga. All'interno della riga scrivo le 4 colonne facendo un controllo con un if per verificare che ci sia sempre un elemento da inserire. Sarà meno elegante ma funziona...

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.