Ciclo for annidato ?

ezechiele2

Nuovo Utente
11 Mar 2013
2
0
0
Salve a tutti, avrei questo problemino e non riesco a venirne a capo perchè mi intrigo.

Dunque io ho una tabella denti, contenente ( tralasciando i dati non rilevanti ) il nome del dente ed il suo stato attuale :

Codice:
dente PK
iddente
nomedente INT 2 
stato VARCHAR 1

Faccio una breve spiegazione del modo in cui sono chiamati i denti ...
I denti sono salvati secondo la numerazione standard, quindi da 11 a 18, da 21 a 28, da 31 a 38 e da 41 a 48. Il primo numero corrisponde al quadrante, il secondo alla posizione rispetto al quadrante. Ad esempio, il numero 12 rappresenta 1 per l'arcata superiore destra, e il due la posizione. Posto un'immagine per far capire meglio.

numerazione_denti.jpg

Recuperando i dati con una query , vorrei poter stampare una tabella in modo che i dati venissero rappresentati cosi :

18 17 16 15 14 13 12 11 21 22 23 24 25 26 27 28
48 47 46 45 44 43 42 41 31 32 33 34 35 36 37 38

Ossia, grossomodo il disegno di poco fa in versione tabellare. Tenete presente che non è possibile che manchi uno di questi numeri / identificatori nella tabella denti.

PHP:
$sql="SELECT * FROM paziente join bocca on idp = idpaziente join dente on boccaid = idbocca WHERE idp = '".$q."' ";
$result = mysql_query($sql) or die (mysql_error());

echo "<table border='1'>";

while($row = mysql_fetch_array($result))
  {

  echo " $row['nomedente'] ";

  }
echo </table>";

Ora, sara' che mi ci son un po' rimbecillito dietro , ma non riesco proprio a risolvere in maniera rapida con qualche ciclo .. l'unica alternativa che mi rimane e' specificare nel where gruppi di 8 denti alla volta, ordinandoli li, e poi stampandoli a video semplicemente con un order by asc/desc a seconda che si trovino nella parte sinistra o destra della tabella. Ma è di una bruttezza tale che vorrei evitare :hammer::hammer::hammer:

Grazie a chi ci sbattera' la testa ( o avra' la classica soluzione che io stupidamente non avro' trovato :crying: ) ! :fonzie:
 
Ciao,
forse fai prima ad aggiungere una colonna in piu nella tabella la chiami ordine e assegni ad ogni dente l'ordine giusto poi con "ORDER BY ordine" hai risolto
 
Ciao,
forse fai prima ad aggiungere una colonna in piu nella tabella la chiami ordine e assegni ad ogni dente l'ordine giusto poi con "ORDER BY ordine" hai risolto

Mmm te dici un campo "fittizio" ?
Tipo dente 18 => 1 17 => 2 etc etc e poi li stampo ordinando per quel campo ? E' una buona idea, sicuramente meglio di dover fare 4 query specificando tutte le condizioni nel where, non ci avevo pensato ! Grazie !
 
Quoto al l'aggiunta di un nuovo campo anche perché se volessi fare un for annidato è un po' ingarbugliato e non molto bello da vedere.
 

Discussioni simili