- Home
- Categorie
- Coding e Sistemistica
- PHP
- problema query
-
problema query
Salve a tutti,
id category period title
1 advertising 2000-2201 Adv la lunga
2 quadri 2000-2201 La notte
3 riviste 1999 Rivista 01
4 quadri 2000-2201 Il giorno
5 advertising 199 Adv 02Ho bisogno di effetuare un select dalla tabella sopra(catalogue),
che mi selezioni le varie category, esempio advertising, mi conti il totale per ognuna mi esegua un loop stampandomi i dati solo per la categoria esempio:[advertising]
&advtot=&id1=
&title1=
&period1=&id2=
&title
&period2=
e cosi via per tutti i record della categoria advertsing[quadri]
&quadtot=&id1=
&title1=
&period1=&id2=
&title2=
&period2=e cosi via per tutti i record della categoria quadri
ecc.
non risco a venirne fuori.
Qualche suggerimentio?
Grazie.
-
ciao Manuela_72,
per i totali puoi fare:select count(id) as numero, category from tabella group by category
in questo modo ottieni il numero di tutte le occorrenze di ogni categoria.
per la stampa devi fare:
select distinct category from tabella
ed ottieni l'elenco delel categorie estratte una sola volta
while (ciclo sul risultato)
select * from tabella where category = "nome della categoria estratta dalla select precedente"p.s. questa struttura non è una struttura normalizzata per un database!!!
il tuo caso si risolve facendo:
tabella categorie:
id
titolotabella prodotti
id
id_categoria
prodotto
etc
etcin questo modo non hai dati ridondanti, inutili e di difficile manutenzione.
se decidi di cambiare nome ad una categoria devi cambiarla in tutte le occorrenze della tabella rpodotti?
ciao
-
Grazie Tymba!
Ho fatto cosi:mysql_select_db($db, $db_kuz); //QUERY per il Numero di categorie e totale quadri per ogni categoria $query_tot = mysql_query("SELECT count(cat_categorie.cat_category) AS tot, cat_categorie.cat_category FROM (cat_quadri INNER JOIN cat_categorie ON cat_categorie.cat_id=cat_quadri.cat_id) GROUP BY cat_categorie.cat_category "); $tot_gallery= mysql_num_rows($query_tot); echo "&rtot={$tot_gallery}"; $i=1; while($row=mysql_fetch_array($query_tot)){ $tot=$row['tot']; $cat=$row['cat_category']; echo "&r{$i}n=$tot&r$i=$cat"; $i++; } //QUERY per selezionare le categorie distintamente $query = mysql_query("select distinct cat_category from cat_categorie order by cat_category ASC"); $v=0; while($row=mysql_fetch_array($query)){ $cat=$row['cat_category']; echo $cat,"\n"; //QUERY per selezionare le categorie in base alla variabile $cat $sub =mysql_query("SELECT *FROM (cat_quadri INNER JOIN cat_categorie ON cat_categorie.cat_id=cat_quadri.cat_id) where cat_category= '$cat'"); $v++; $i=1; //stampo tutti i dati relativi alla categoria while($row2=mysql_fetch_array($sub)){ $id=$row2['id']; $title=$row2['title']; $period=$row2['period']; $tech=$row2['technique']; $img=$row2['picture']; $thumb=$row2['thumb']; //echo "&id{$v}r{$i} ={$id}&r{$v}t{$i} ={$title}&p{$v}r{$i} ={$period}\n"; echo "&r{$v}t{$i}={$title}&r{$v}p{$i}={$period}&r{$v}s{$i}={$tech}&r{$v}i{$i}={$img}&r{$v}_t{$i}={$thumb}"; $i++; } }
mi serviva l'output in questo modo per poter integrare tutto in flash, senza dovere eseguire cicli in array in seguito.
By
Manuela