Popolare tabella con risultati di una query

  • Creatore Discussione Creatore Discussione Monital
  • Data di inizio Data di inizio

Monital

Utente Attivo
15 Apr 2009
778
2
18
Mi accodo al topic dato che purtroppo ancora una volta mi si ripresenta un problema simile, essendo il codice abbastanza lunghetto provo a spiegarmi con un esempio.

Eseguo più query su più tabelle e vorrei incolonnare i risultati di tutte le query, sono convinto che è foreach a crearmi sto problema cmq proseguo:

anzi provo ad incollare il codice incriminato

PHP:
 <table border="1">

<?php
include ('connect.php');


mysql_connect($DBhost,$DBuser,$DBpass) or die("Impossibile collegarsi al server");
@mysql_select_db("$DBName") or die("Impossibile connettersi al database $DBName");

    /* Esecuzione di una query SQL */
    $query = "SELECT * FROM tabella ORDER BY Nome";
    $risultato = mysql_query($query) or die("Query fallita: " . mysql_error() );

    /* Stampa dei risultati in HTML */
		   echo "<tr>"; 


	echo "<td width=\"20\"bgcolor=\"DARKBLUE\" ><b><font face=\"Tahoma\" size=\"2\" color=\"WHITE\">Nome</td>
	<td width=\"20\"bgcolor=\"DARKBLUE\" ><b><font face=\"Tahoma\" size=\"2\" color=\"WHITE\">&nbsp;&nbsp;Città</td>
	<td width=\"20\"bgcolor=\"DARKBLUE\" ><b><font face=\"Tahoma\" size=\"2\" color=\"WHITE\">&nbsp;&nbsp;Etamedia</td>
	<td width=\"20\"bgcolor=\"DARKBLUE\" ><b><font face=\"Tahoma\" size=\"2\" color=\"WHITE\">&nbsp;&nbsp;Economia</td>
	

	";
 echo "\t</tr>";
$i=0;
    while ($linea = mysql_fetch_array($risultato, MYSQL_ASSOC)) {
	$i++;
		$lin0=$linea['ID_Nome'];

	$lin=$linea['Nome'];
	$lin2=$linea['Città'];
  
		 
		   echo "<tr>"; 
	            echo "<td  height=\"22\" width=\"80\" align=\"center\" bgcolor=\"LIGHTCYAN\"><b><font face=\"Tahoma\" size=\"1\" color=\"Red \">$lin</td>\n";
				echo "<td  height=\"22\" width=\"80\" align=\"center\" bgcolor=\"LIGHTCYAN\"><b><font face=\"Tahoma\" size=\"1\" color=\"#292929 \">$lin2</td>";
		        

}

//Età MEdia
		$sql = "SELECT * FROM Nome";

$query = mysql_query($sql) or die(mysql_error());
$nomi=array();
$dati=array();
while($linea = mysql_fetch_array($query, MYSQL_ASSOC))
{ 
	$dati[] = $linea['ID_Nome'];
    $nomi[] = $linea['Nome'];
	}  
$avgs = array();


foreach($nomi as $user)
{


    $sql = "SELECT * FROM Tabella2  WHERE Nome='{$user}'";
    $query = mysql_query($sql) or die(mysql_error());
    
    $total = 0;
    
    while($row = mysql_fetch_assoc($query))
        $total += $row['eta'];
    
    $rows = mysql_num_rows($query);
    
    $avgs[] = round((($rows > 0) ? ($total / $rows) : 0),2);
   
	

}




foreach($dati as $key=>$id)
{ 

echo "<tr>"; 

$value1 = $avgs[$key]; 

	            echo "<td  height=\"22\" width=\"80\" align=\"center\" bgcolor=\"LIGHTCYAN\"><b><font face=\"Tahoma\" size=\"2\" color=\"#292929 \">$value1</td>\n";

       

                
	 	}
		    

 
	//Budget
	
$bud=array();
$sql="SELECT * FROM tabella ORDER by Nome";
$pr=mysql_query($sql);
while ($res = mysql_fetch_array($pr, MYSQL_ASSOC)) {
 
$bud[] = $res['ID_Nome'];
}
  	

foreach($bud as $user)
{

	$sql="SELECT * FROM tabella1 WHERE ID_Nome ='{$user}' '";
$fr=mysql_query($sql);
 while ($fuori = mysql_fetch_array($fr, MYSQL_ASSOC)) {
echo "<tr>"; 
		 $budget=$fuori['Attuale'];
		


        }          
				 
    					   echo "<td height=\"22\" width=\"20\"><font face=\"Tahoma\" size=\"2\" color=\"$col\">&nbsp;&nbsp;$budget</td>\n";
     


} 
   echo "\t</tr>\n";

	
	   
	?>

</tr>
</table>

in sostanza le prime due nome e citta me le incolonna giuste mentre eta la incolonna sotto a nome e economia la incolonna sotto a eta mantenendo l'intestazione valida

in pratica

Nome ____Città____Eta media_____Economia
listanomi __lista città
Lista età media
lista economia

avrò fatto unc entinaio di prove dato che non ho capito il concetto dell'incolonnamento quindi può essere solo che apro o chiudo una riga dopo una parentesi sbagliata

HELP
 

Discussioni simili