Problemone con allineamento in tabella

marcopa

Nuovo Utente
13 Set 2011
11
0
0
sassari
Ciao a tutti, sono da giorni alle prese con un problema che non riesco a risolvere, provo a spiegare nella speranza che a qualcuno abbia un aiuto da darmi...

Devo allineare in una tabella composta in questo modo :
HTML:
<table class="table1">
                <thead>
                    <tr>
                        <th></th>
                        <th scope="col" abbr="Musica">Musica</th>
                        <th scope="col" abbr="Letteratura">Letteratura</th>
                        <th scope="col" abbr="Arte">Arte</th>
                        <th scope="col" abbr="Cucina">Cucina</th>
                    </tr>
                </thead>
                
                <tbody>
                    <tr>
                        <th scope="row">Italiano</th>
                     </tr>
                    <tr>
                        <th scope="row">Inglese</th>
                     </tr>
                    <tr>
                        <th scope="row">Francese</th>
                    </tr>
                     <tr>
                </tbody>
            </table>
I dati li ho scritti per far capire cosa avranno le tabelle ma non posso sapere l'ordine
vengono letti da database e creano le colonne.
Devo riuscire ad "infilare" i dati letti da mysql nella corrispondente cella
Se il libro tratta arte ed è Italiano... come diavolo posso sapere dove lo devo mettere?

Avete qualche dritta da darmi?
Grazie!
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao
La tabella come è fatta piu o meno?
hai un campo che identifica la lingua?
 

marcopa

Nuovo Utente
13 Set 2011
11
0
0
sassari
Ciao
La tabella come è fatta piu o meno?
hai un campo che identifica la lingua?

spero di aver capito cosa intendi.
I campi da mysql sono due : categ che identifica Arte,Cucina,Letteratura etc.
ed il campo lingua dove trovi Italiano,inglese,francese
intendi questi?
 

marcopa

Nuovo Utente
13 Set 2011
11
0
0
sassari
Scusami, in visual basic, esisteva un comando che ti permetteva esattamente di posizionare un dato in una data cella
Colpos(), Rowpos(), una corrispondenza esiste?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
ed il campo lingua dove trovi Italiano,inglese,francese
si questi

ma che linguaggio stai usando adesso?

ps: se PHP piu tardi provo a buttarti giu qualcsoa
 
Ultima modifica:

marcopa

Nuovo Utente
13 Set 2011
11
0
0
sassari
si questi

ma che linguaggio stai usando adesso?

ps: se PHP piu tardi provo a buttarti giu qualcsoa

Scusa, sto usando PHP.
te ne sarei molto grato, riesco ad ottenere delle tabelle ma disordinate, sotto la colonna arte mi ritrovo totalizzato
anche musica o altro, proprio non riesco a mettere in ordine il codice.
 

marcopa

Nuovo Utente
13 Set 2011
11
0
0
sassari
Aspetta, se vuoi aiutarmi evita di riscrivere tutto, io ho già scritto questo.
HTML:
<div id="content">        
             
<h2><center> Totali libri per categoria </center></h2>
            
            <table width="1022" class="table1">
                 <thead>
                    <tr>
                        <th></th>
                        <?php creacolonne();?>
                    </tr>
                </thead>                  
            
                <!---------------------------------------- Cerco Regioni --------------------------------->
                <tbody>
                    <tr>
                       <?php Lingue();?>
                  <tr>
                </tbody>
            </table> 
        </div> 		
</div> 
</body>
</html>
PHP:
<?PHP
function creacolonne()
{
	include "funzioni_mysql.php";

$datagestori = new MysqlClass();
$datagestori->connetti();

$categorie='';
 
$select="SELECT DISTINCT(tipo_categ) as categoria FROM libri order by lingua,tipo_categ"; 
 
$query = $datagestori->query($select);


	 while ($row = mysql_fetch_array($query))
	 {
 			$cat =$row['tipo_categ'];
			
             echo '<th scope="col" ><div id="' .$cat. '">' .$cat .'</div></th>';

	 }
 

$datagestori ->disconnetti();

return;


}
//--------------------------------------------------------------------------------------------------
function lingue()
{
$datagestori = new MysqlClass();
$datagestori->connetti();
$lingua ='';
 
$commento_sql = $datagestori->query("SELECT * FROM libri order by lingua asc ");

if(mysql_num_rows($commento_sql) > 0) 
  {  
  		while($commento_obj = $datagestori->estrai($commento_sql)) { 

 			      $lingua =  $commento_obj->lingua;
 			
 				  echo '<th scope="row" id="'.$lingua.'" >'.$lingua.'</th>';
				  
				  categoria($lingua);
                  
 
		}
  }

 
$datagestori ->Disconnetti();

return;
}

// --------------------------------------------------------------------------------------------------------------------

function categoria($lingua)
{

$datagestori = new MysqlClass();
$datagestori->connetti();
 
$select="SELECT tipo_categ, COUNT(*) as totali  FROM libri where lingua =$lingua GROUP BY tipo_categ"; 

$query = $datagestori->query($select);


	 while ($row = mysql_fetch_array($query))
	 {
 		 
 		 echo '<td><div id="' .$row['tipo_categ'].'">'.$row['totali']. '</div></td>' ;

	 }
 

echo ' </tr>';
echo ' <tr>';

$datagestori ->disconnetti();

return;
}

?>
 
Ultima modifica di un moderatore:

marcopa

Nuovo Utente
13 Set 2011
11
0
0
sassari
Rieccomi, sto cercando di darti più informazioni possibili, libri.jpg
ho allegato un print_screen della tabella per far capire dove sta l'errore
come puoi vedere nella tabella è indicato 1 Libro di bricolage in Inglese ma nel database non esiste.
In Inglese ho solo libri di Arte e Letteratura, in arte ho 1 libro ma in letteratura non ho nulla.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
se ho capito...
hai una tabella piu o meno cosi

letteratura - inglese
cucina - italiano
cucina - inglese
musica - inglese
letteratura - italiano
letteratura - italiano
cucina - italiano
i valori possono ripetersi
e dovresti fare un count() ragruppando per tipo e lingua

credo che te la puoi cavare con una sola funzione e una sola query
pensavo di creare un array su misura e di ciclarlo per creare la tabella

ma probabilmente sono troppo fuso per ragionare decentemente
ti posto l'inizio della mia idea magari puo darti qualche spunto
ho usato la libreria mysql per connettermi
PHP:
<?php
$conn = mysql_connect("localhost", "root", "");
$db = mysql_select_db("database");
// in questo array metterai le categorie che hai sul db
$array_categorie = array("musica", "cucina", "letteratura");
// costruiamo la query
$query = "SELECT count(*) as conta,tipo_categ,lingua FROM libri GROUP BY tipo_categ, lingua";
// eseguiamola
$res = mysql_query($query);
// costruiamo l'array 
$array = array();
while ($rows = mysql_fetch_assoc($res)) {
    if (in_array($rows['tipo_categ'], $array_categorie)) {
        $array[$rows['tipo_categ']][$rows['lingua']] = $rows['conta'];
    }
}
// vediamo cosa ne è uscito
var_dump($array);
sicuramente domani mattina a mente fresca ragiono meglio
 

marcopa

Nuovo Utente
13 Set 2011
11
0
0
sassari
Ciao, scusa ma ieri notte sono rientrato troppo tardi, pizzata con ex compagni di scuola!!!
Ora provo, ma ho visto che hai messo in array le categorie....mmm, credo si possa fare
anche se non conosco tutte quelle inserite, diciamo che le potrei codificare e unificarle.
Ho visto nel db originale che alcuni testi sono Lettere, Letteratura, Lettera
ma questo è un problema risolvibile...
Ora provo la tua soluzione. Poi ti dico
Grazie.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
anche se non conosco tutte quelle inserite

al massimo puoi fare una query sul db per costruirti dinamicamente l'array delle categorie
 

marcopa

Nuovo Utente
13 Set 2011
11
0
0
sassari
$query = "SELECT count(*) as conta,tipo_categ,lingua FROM libri GROUP BY lingua, tipo_categ ";

In realta, andrebbe selezionata al contrario, l'esempio che mi hai postato mi seleziona :

Arte : 1 italiano, 1 Inglese.
Sarebbe il contrario
Italiano 1 arte 1 Cucina 1 Bricolage
Inglese 1 arte 0 cucina 0 Bricolage
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
prova ad invertire il group by e l'ordine dei campi

Codice:
SELECT lingua,count(*) as conta,tipo_categ FROM libri GROUP BY tipo_categ, lingua

EDIT e anche il cliclo mi sa
 

marcopa

Nuovo Utente
13 Set 2011
11
0
0
sassari
Grazie Ragazzi, ho risolto in questo modo, anche se non molto pulito, ma funge.
Considerando che le categorie sono in tutto 9, può andare bene....
Peccato, con vb lo avevo fatto in 10 minuti, ma per il web è macchinoso!!

PHP:
$select="SELECT tipo_campo, COUNT(*) as totali  FROM campi where id_reg =$id_reg GROUP BY tipo_campo"; 
$query = $datagestori->query($select);


	 while ($row = mysql_fetch_array($query))
	 {
 		 $cat =$row['tipo_campo'];

             if ($cat=='Arte')
               {

                 echo '<td>>'.$row['totali']. '</td>' ;
 		 echo '<td></td>' ;
 		 echo '<td></td>' ;
 		 echo '<td></td>' ;
              }
             if ($cat=='Bricolage')
               {
 		 echo '<td></td>' ;
                 echo '<td>>'.$row['totali']. '</td>' ;
 		 echo '<td></td>' ;
 		 echo '<td></td>' ;
              }
             if ($cat=='Cucina')
               {

 		 echo '<td></td>' ;
 		 echo '<td></td>' ;
                 echo '<td>>'.$row['totali']. '</td>' ;
 		 echo '<td></td>' ;
              }

	 }
 
Discussioni simili
Autore Titolo Forum Risposte Data
C Problemone con Tag <object> in <table> HTML e CSS 0
figo1592 Problemone con Mp3 HTML e CSS 1
S Stamp-Catturare immagini con Flash...Problemone!! Flash 3
J Aiuto problemone firefox. HTML e CSS 4
M ho un problemone col proxy!! HELP!! ç_ç Reti LAN e Wireless 0
M Problemone foreach PHP 0
S [vb.net 2005] Creare un modulo PROBLEMONE Programmazione 0
S Problemone Enorme Help!!! Classic ASP 6
G formattazione : problemone Hardware 5
M Visulizzare immagine con php PHP 4
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
G leggere file txt e stampare con php il contenuto a video PHP 7
M Riportare in tabella HTML dati estratti con query SQL MySQL 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
G Invio form con PHP PHP 3
M Barra di navigazione con google HTML e CSS 1
T PROBLEMA CON SESSIONI PHP 3
A Problemi con move_uploaded_file PHP 7
G Menù a tendina di ricerca con query PHP 1
T fatture con voci fattura in php PHP 0
A Tabella con bottoni per aggiornamento record PHP 6
M Come selezionare e deselezionare radiobutton con jquery jQuery 1
MarcoGrazia Calcolo fra due date con esclusione delle feste PHP 7
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
T PROBLEMA CON ARRAY PHP 8
M Inviare un file su un server remoto con JavaScript Javascript 0
L problema con query select PHP 2
M Come validare textarea con jquery jQuery 0
M Problemi con la stampa dei valori in php PHP 1
A Regex per isolare link interni con rel noopener PHP 0
L Problemi con il login PHP 2
F Creare elementi html con javascript Javascript 4
R Problema query con ricerca id numerico PHP 2
R [C#] Quali dipendenze occorrono su progetto "Setup" con Access Database? .NET Framework 0
F Problema con risposta PHP 0
A Sottoquery con group by per mese MySQL 0
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
A Quale NVR con ingressi bnc ? IP Cam e Videosorveglianza 1
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
T Film interattivo con linguaggi web Programmazione 7
A pulsante di update campo mysql con javascript Javascript 2
R Tutto su utf-8 ma ancora problemi con i caratteri speciali in mysql MySQL 1
Barierta Testo a comparsa con passaggio del mouse Javascript 16
M Estrarre valore con SELECT COUNT PHP 0
G VBA OpenForm con WhereCondition + LIKE su campi differenti MS Access 5
sara3 Offresi articolista con esperienza Offerte e Richieste di Lavoro e/o Collaborazione 2
L Problema RAM con Tomcat 8 Apache 0
S connesso, internet non disponibile ( con extebder tp-link850) Reti LAN e Wireless 0

Discussioni simili