[PHP] stampa a video valori query array multidimensionale

valerio matrix

Nuovo Utente
7 Mag 2015
33
0
6
Non volevo aprire di nuovo un post ma credo che nel mio libro non ci sia spiegazione a questo quesito.
Dopo aver estrapolato con una query i dati della tabella organigramma con inner join, come faccio a stamparli a monitor. ho provato con:
Codice:
echo "<table>";
       echo "<tr><th> ID </th> <th> NOME </th> <th> COGNOME </th></tr>";

       while ($row = mysqli_fetch_array($risultato))
       {
           echo "<tr>";
           echo "<td>" . $row['nome']. "</li>";
           echo "<td>" . $row['cognome']. "</li>";
           ...
           echo "</tr>";
       }
   echo "</table>";
e cosi via ma senza successo. Ho provato anche con foreach. Fin quando devo stampare un array va bene, ma in questo caso è una matrice e mi stampa solo alcuni valori per di più senza capirne la logica.
Ho cercato anche su internet ma escono fuori esempi di come stampare array semplici e il mio libro riguarda i fondamenti di php e non capisco perché non riesco a trovare una soluzione.
 
Posta tutto il codice, compresa la query ;)

P.S.: stai chiudendo il tag <td> con il tag </li>
 
Codice:
    $get_organigramma_query = "SELECT lavoratori.nome , lavoratori.cognome, funz_aziendale.nome, struttura.nome FROM organigramma INNER JOIN lavoratori ON organigramma.id_lav = lavoratori.id_lav INNER JOIN funz_aziendale ON organigramma.id_fa = funz_aziendale.id_fa INNER JOIN struttura ON organigramma.id_strut = struttura.id_strut";

   $risultato = mysqli_query($conn, $get_organigramma_query);
   
   if($risultato === false){
       die("<p> Errore </p>");
   }

    echo "<table>";
    echo "<tr><th> NOME </th> <th> COGNOME </th> <th> F.A. </th> <th> STRUTTURA </th> </tr>";

    while ($row = mysqli_fetch_array($risultato))
       {
           echo "<tr><td>" . $row['lavoratori.nome'] . "</li>";
           echo "<td>" . $row['lavoratori.cognome'] . "</li>";
           echo "<td>" . $row['funz_aziendale.nome'] . "</li>";
            echo "<td>" . $row['struttura.nome'] . "</li></tr>";
        }
   echo "</table>";
   

?>
cosi non stampa nulla. Se tolgo il nome delle tabelle, mi stampa sempre i stessi dati visto che tre $row hanno come chiave 'nome'.
 
Prova così.
PHP:
$get_organigramma_query = "SELECT lavoratori.nome as nome_lav,  lavoratori.cognome as cognome_lav,  funz_aziendale.nome as funzione_lav,  struttura.nome as nome_struttura FROM organigramma  INNER JOIN lavoratori  ON organigramma.id_lav = lavoratori.id_lav  INNER JOIN funz_aziendale ON organigramma.id_fa = funz_aziendale.id_fa  INNER JOIN struttura ON organigramma.id_strut = struttura.id_strut";

$risultato = mysqli_query($conn, $get_organigramma_query);
   
if($risultato === false){
    die("<p> Errore </p>");
}

echo "<table><tr><th> NOME </th> <th> COGNOME </th> <th> F.A. </th> <th> STRUTTURA </th> </tr>";

while ($row = mysqli_fetch_array($risultato)) {
    echo "<tr><td>" . $row['nome_lav'] . "</td>";
    echo "<td>" . $row['cognome_lav'] . "</td>";
    echo "<td>" . $row['funzione_lav'] . "</td>";
    echo "<td>" . $row['nome_struttura'] . "</td></tr>";
}

echo "</table>";
 
Funziona, grazie. Non mi era venuto in mente di utilizzare AS.
Per quanto riguarda l'html, me ne sono accorto dopo che ho postato :(
:):):)
 

Discussioni simili