visualizzazione query

ciao a tutti, dovrei eseguire una query su 2 tabelle ma visualizzare i risultati in un certo modo

queste sono le tabelle

tabella stampanti_tipo

----------------------------------

  tipo_id | tipo

----------------------------------

  1          | getto d'inchiostro

  2          | laser

e poi la tab. stampanti:

---------------------------------------------------------------

 stampante_id | tipo_id | marca | serie | modello |

---------------------------------------------------------------

             1         |   1        | epson| Stylus| 400      

             2         |   1        | epson| Stylus| 200    

             2         |   2        | epson| laser1| DXN    

             2         |   2        | epson| laser2| DXN-2

ora vorrei visualizzarle in pagina php così:

raggrupparle ordinate per tipo,  serie e modello (in ordine alfabetico) tipo così:

stampanti getto inchiostro

Stylus

200, 400

Stampanti Laser

laser1

DXN, DXN-2

in PHP ho fatto la join così:

<?php
 
$query = "SELECT stampanti.serie AS serie, stampanti.modello AS modello, 
stampanti.tipo_id AS tipo_id, stampanti_tipo.tipo AS tipo 
FROM stampanti LEFT JOIN stampanti_tipo ON stampanti.tipo_id=stampanti_tipo.tipo_id 
ORDER BY stampanti.tipo_id";
$result =  mysql_query($query, $db);
 
//ciclo visualizzazione
 
if (mysql_num_rows($result) == 0) {
 
 echo "<p>Non ci sono stampanti.</p>";
 
}else{
 
while($row = mysql_fetch_assoc($result)){
 
echo $row['tipo']." - ".$row['serie']." - ".$row['modello']."<br />";
 
} //fine while
 
 
 
} //fine if
 
?>

e visualizza così:

Stampanti a Getto d'inchiostro - Stylus - 400

Stampanti a Getto d'inchiostro - Stylus - 200

Stampanti Laser - laser1- DXN

Stampanti Laser - laser2 - DXN-2

secondo voi come potrei ordinarle così?

stampanti getto inchiostro

Stylus

200, 400

Stampanti Laser

laser1

DXN, DXN-2

inviato 8 anni fa
lurulu
modificato 8 anni fa
X 0 X

Ciao,

potresti provare a modificare la query così:

$query = "SELECT stampanti.serie AS serie, stampanti.modello AS modello, 
stampanti.tipo_id AS tipo_id, stampanti_tipo.tipo AS tipo 
FROM stampanti LEFT JOIN stampanti_tipo ON stampanti.tipo_id=stampanti_tipo.tipo_id 
ORDER BY stampanti.tipo_id, stampanti.serie, stampanti.modello";

Poi potresti modificare il codice di stampa così:

$tipo = "";
$serie = "";

while($row = mysql_fetch_assoc($result)){
 
$tipo_check = false;
$serie_check= false;

if ($tipo != $row['tipo']) {
  $tipo = $row['tipo'];
  $tipo_check = true;
}

if ($serie != $row['serie']) {
  $serie = $row['serie'];
  $serie_check = true;
}

if ($tipo_check)
echo "<strong>".$row['tipo']."</strong><br />";

if ($serie_check)
echo $row['serie']."<br />";

echo $row['modello'].", ";

}

Ho scritto il codice a getto... quindi manca la fase di test.

 :bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

azz... la soluzione era così semplice!

grazie 1000 zeta80, sembra funzionare.

ciao!  ;)

risposto 8 anni fa
lurulu
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda