curiosita' max(array)

  • Creatore Discussione Creatore Discussione zighy
  • Data di inizio Data di inizio

zighy

Utente Attivo
20 Gen 2012
96
0
0
PHP:
$query ="select * from punti ";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result))
echo $row[campo];

Ho questa query che mi restituisce tutti i valori del campo $row[campo], che se non sono ancora sbroccato completamente è un array.
Sarei curioso di sapere perchè non riesco a estrarre il valore piu' alto con
PHP:
$max=max($row[campo]);

almeno vorrei delucidazioni.Grazie.
 
Grazie per la risposta Borgo ma cosi facendo mi restituisce il primo campo della tabella (id) quindi non calcola nessun max perchè è sempre lo stesso oltre a non essere il campo del quale vorrei trovare il valore piu' alto.

id | campo1 | campo2
1 | 2 | 2
1 | 8 | 3
1 | 5 | 9
1 | 3 | 1

Esempio.. se la tabella fosse questa sopra mi restituisce 1. Spero di essermi spiegato.
 
Ultima modifica:
ciao
potresti provare così
PHP:
<?php
//..
$query ="select * from punti ";
$result = mysql_query($query);
while($row = mysql_fetch_assoc($result)){
	$cerca_max[]=$row[campo];
	echo $row[campo]; 
}
echo "massimo punteggio: ".max($cerca_max);
//...
?>
oppure puoi ordinare la query per il punteggio
 
si alla fine anch'io sono giunto alla soluzione di ordinare la query pero' ho diversi campi quindi diventa una script lungo poi ordino i risultati in un array e ricavo il valore piu' grande con max.. funziona come voglio solo mi chiedevo se c'era un modo per estrapolare tutti i dati di diversi campi e trovare il piu alto senza dover fare diverse query. Ieri c'ho smattato un po ma per ora mi arrangio cosi. Ho chiesto perchè magari qualcuno aveva una soluzione geniale. Grazie tante cmq. :)
 
Ciao, la funzione max esiste anche in mysql
Codice:
SELECT max(campo) as alto FROM tabella
 
ciao criric,
sono a conoscenza di select max ma correggimi se sbaglio (ho provato mi pare) funziona per ogni singolo campo quindi usare select max o ordinare la query non mi cambia molto devo cmq fare query per ogni campo solo usando select max.
 
non cambia molto se dopo l' ORDER BY ci metti anche LIMIT 1 visto che max ti restituisce soltanto un record
ma non ho capito bene cosa vorresti ottenere
 
Guarda i post precedenti, ho 'disegnato' una tabella "punti" di esempio.Volevo estrarre tutti i dati di tutti i campi e trovare il piu' alto senza dover estrarre il valore piu' alto campo per campo e poi trovare il maggiore. La mia era piu' che altro una curiosita' per semplificare lo script.
 
il codice che ti ha postato Borgo allora è perfetto
crea un nuovo array da verificare con la funzione max()
 
:)
Borgo spesso mi ha aiutato e so che è ferratissimo ma in questo caso il suo script è buono per campo come con un order.. cmq adesso apro un altra discussione che nel mio piccolo credo sia davvero complicata.. vi ringrazio per le dritte di questo caso ma alla fine ho ordinato campo x campo senza starmi a complicare la vida.. ciao
 

Discussioni simili