Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Script con COUNT* ?

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    218

    Script con COUNT* ?

    Salve a tutti, sto sviluppando una piccola appliccazione web che mi permette di inserire alcuni utenti e inserire dati per ciascuno. Dati che chiamerò "navi".

    Il db è così diviso: Utenti (id_utente, nome, navi_numero) , navi (id_nave, utente, nome_nave, note_nave).

    Premesso ciò passiamo al problema.
    Ho voluto creare una pagina php che visualizzi una tabella nella quale ci sono gli utenti, il numero delle navi di ciascuno e varie operazioni su di loro. PROBLEMA:

    Codice PHP:
    <?php

    include "function.inc.php";

    //mi collego al db richiamando la funzione
    conn_db();

    //seleziono tutte le info utenti (id_utente, nome, navi)
    $query "SELECT * FROM utenti";
    $rs mysql_query($query)
        or die (
    "Errore query " .mysql_error());
        
    while (
    $riga mysql_fetch_array($rs))
    {
        
    $id_utente $riga['id_utente'];
        
    $nome $riga['nome'];
        
    $navi $riga['navi'];
        
        echo 
    "<tr><td> <div align='center'>[url='visualizza_navi.php?nome_utente=$nome']".$nome."[/url]</td></div> <td><div align='center'>".$navi."</a></td> </div> <td> <div align='center'>[url='aggiungi.php?nome_utente=$nome']Aggiungi[/url] || [url='sottrai.php?id=$id_utente']Togli[/url]</td></div> <td><div align='center'>[url='elimina.php?id=$id_utente']Elimina[/url]</div></td></tr>";

        
    }
    ?>
    Attualmente prendo il valore "navi" dalla tabella utenti incrementandolo o diminuendolo di volta in volta con uno script che interagisce con aggiungi_nave.php e elimina_nave.php

    Il che mi da fastidio.

    Preferirei eliminare da Utenti la riga "navi" ed effettuare un COUNT(*) in Tabella navi riga nome_nave, così da estrapolare direttamente quante ce ne sono per ogni utente.
    Una cosa del genere..
    Codice PHP:
    $query2 "SELECT count(*) as tot_navi FROM navi WHERE utente='$nome'; 
    Sinceramente però non so come fare per inserirla nel ciclo while di prima..

    consigli?

    Grazie per l'aiuto

  2. #2
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    prova con
    Codice PHP:
    <?php

    include "function.inc.php";

    //mi collego al db richiamando la funzione
    conn_db();

    //seleziono tutte le info utenti (id_utente, nome, navi)
    $query "SELECT       u.*,
                                   COUNT(n.id_nave) AS navi_totali
                  FROM          utenti   AS u
                  LEFT JOIN    navi  AS n ON n.utente = u.id_utente
                  GROUP BY    id_utente"
    ;
    $rs mysql_query($query)
        or die (
    "Errore query " .mysql_error());
        
    while (
    $riga mysql_fetch_array($rs))
    {
        
    $id_utente $riga['id_utente'];
        
    $nome $riga['nome'];
        
    $navi $riga['navi_totali'];
        
        echo 
    "<tr><td> <div align='center'>[url='visualizza_navi.php?nome_utente=$nome']".$nome."[/url]</td></div> <td><div align='center'>".$navi."</a></td> </div> <td> <div align='center'>[url='aggiungi.php?nome_utente=$nome']Aggiungi[/url] || [url='sottrai.php?id=$id_utente']Togli[/url]</td></div> <td><div align='center'>[url='elimina.php?id=$id_utente']Elimina[/url]</div></td></tr>";

        
    }
    ?>
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.