Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Prendere valore max da una tupla

    Ciao a tutti, ho scritto una funzione in PHP che va a prendere delle tuple da un database.
    L funzione è la seguente:

    Codice PHP:
    function query1(){    $query1 "select m.name, count(*) as album from musicians_ as m, albumproducer as a where       a.ssn = m.ssn group by m.ssn";    $result mysql_query($query1);    echo "<span style=\"color:red\"> ARTISTI E NUMERO DI ALBUM PRODOTTI </span> <br>";       while($row=mysql_fetch_array($result)){      $nomi $row['name'];       $albums $row['album'];           echo $nomi."\t".$albums;      print("<br>");      }    } 
    Questo è quello che mi restituisce:

    George Martin 2
    Ron Wood 4
    Jimmy Hendrix 3
    George Harrison 1
    Ringo Starr 4

    Come devo modificare il codice in modo da stampare il gli artisti che hanno prodotto il maggior numero di album, che in questo caso sono 2 ?



  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Aggiungi alla fine della query "ORDER BY album DESC".
    Comunque queste domande vanno poste nella sezione database dato che non sono legate a PHP, ma alle query (SQL)

  3. #3

    la mia domanda è su PHP

    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Aggiungi alla fine della query "ORDER BY album DESC".
    Comunque queste domande vanno poste nella sezione database dato che non sono legate a PHP, ma alle query (SQL)
    Io mi riferivo a modificare il ciclo while in modo da avere solo gli artisti che hanno prodotto il maggior numero di album, non voglio modificare la query.

  4. #4
    Moderatore di Off Topic, Kickstarter e XML L'avatar di Sky
    Registrato dal
    Jul 2000
    residenza
    Roma
    Messaggi
    1,053
    A meno di impelagarti in un doppio ciclo while con annesso ordinamento dell'array, la modifica della query suggerita da Alhazred è l'unica strada.
    Lo Stato deve dare ai cittadini, come diritto, ciò che la mafia dà come favore.
    Carlo Alberto dalla Chiesa

    Facebook | Twitter | Last.fm | LinkedIn | Quora

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Quote Originariamente inviata da Bogdanovki Visualizza il messaggio
    Io mi riferivo a modificare il ciclo while in modo da avere solo gli artisti che hanno prodotto il maggior numero di album, non voglio modificare la query.
    Perché non dovresti voler cambiare la query? C'è qualcosa che te lo impedisce?

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2016
    Messaggi
    29
    Potresti provare con qualcosa di simile:

    codice:
    $top_name = "";$top_album = 0;
    while(1){      
    	$nomi = $row['name'];       
    	$albums = $row['album'];
    	if($albums > $top_album){
    		$top_album = $albums;
    		$top_name = $nomi;
    	}elseif($albums==$top_album){
    		$top_name = $top_name.", ".$nomi;
    	}        
    )
    if($top_name!=""){
          echo "Artisti ".$top_name."<br>";
          echo "Numero Album: ".$top_album;
    }
    Ma la soluzione suggerita da Alhazred è più elegante e molto più efficace

    Aggiungi alla fine della query "ORDER BY album DESC".
    Comunque queste domande vanno poste nella sezione database dato che non sono legate a PHP, ma alle query (SQL)

  7. #7
    Quote Originariamente inviata da fladipa Visualizza il messaggio
    Potresti provare con qualcosa di simile:

    codice:
    $top_name = "";$top_album = 0;
    while(1){      
        $nomi = $row['name'];       
        $albums = $row['album'];
        if($albums > $top_album){
            $top_album = $albums;
            $top_name = $nomi;
        }elseif($albums==$top_album){
            $top_name = $top_name.", ".$nomi;
        }        
    )
    if($top_name!=""){
          echo "Artisti ".$top_name."<br>";
          echo "Numero Album: ".$top_album;
    }
    Ma la soluzione suggerita da Alhazred è più elegante e molto più efficace

    Modificare la query in quel modo ero capace anche, ma l'esercizio mi chiedeva proprio questo.
    Comunque grazie mille era proprio quello che cercavo !

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Quote Originariamente inviata da Bogdanovki Visualizza il messaggio
    Modificare la query in quel modo ero capace anche, ma l'esercizio mi chiedeva proprio questo.
    Comunque grazie mille era proprio quello che cercavo !
    La prossima volta spiegati meglio fin dall'inizio allora.

  9. #9
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    La prossima volta spiegati meglio fin dall'inizio allora.
    Chiedo scusa se non sono stato abbastanza chiaro
    Mi sembrava di essermi spiegato bene dicendo:

    Quote Originariamente inviata da Bogdanovki Visualizza il messaggio

    Come devo modificare il codice in modo da stampare il gli artisti che hanno prodotto il maggior numero di album, che in questo caso sono 2 ?
    modificare il codice non la query.
    Comunque problema risolto! Grazie a tutti per le risposte.

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Anche la query è codice, è codice SQL. Tra l'altro senza sapere che "per forza" dovevi cambiare il codice PHP, modificare la query era l'opzione più intelligente ed efficiente.
    Comunque va bene, solo la prossima volta spiega di preciso cosa devi fare.

Tag per questa discussione

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.