Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    50

    Selezione valore più alto tra più tabelle con php/mysql

    Vorrei realizzare uno script php/mysql che selezioni il valore più alto che si trova in una colonna tra più tabelle e magari riuscire a risalire alla tabella dove si trova...come posso fare???

  2. #2
    Utente di HTML.it L'avatar di Mi|{y
    Registrato dal
    Apr 2003
    Messaggi
    117
    Ciao
    la prima cosa che mi verrebbe in mente di fare è estrarre i valori da tutte le celle mettendoli in un array del tipo $mioarray[tabella][$i] = $nometabella; $mioarray[valorecampo][$i] = $valorecampo; poi ordini l'array con sort($mioarray); poi $mioarray[tabella][0] recuperi la tabella e con $mioarray[valorecampo][0] recuperi il valore

  3. #3
    Ciao,
    una possibile soluzione potrebbe essere questa:

    codice:
    SELECT nome_colonna_tabella_1 AS valore_massimo, 'tabella1' AS tabella FROM nome_tabella_1
    
    UNION
    SELECT nome_colonna_tabella_2, 'tabella2' FROM nome_tabella_2 
    
    ...
    UNION
    SELECT nome_colonna_tabella_N, 'tabellaN' FROM nome_tabella_N 
    
    ORDER BY valore_massimo DESC 
    
    LIMIT 1
    Full Stack Developer presso Advice Lab
    Bonus Bitcoin
    Moon Bitcoin

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    50
    Grazie per le risposte. Scusatemi per l'ignoranza ma riesco a capire quelle stringhe di mysql perchè non so a cosa serve AS? me lo potreste dire?

  5. #5
    Utente di HTML.it L'avatar di Mi|{y
    Registrato dal
    Apr 2003
    Messaggi
    117
    Detta brutalmente: AS assegna un'etichetta (un nome nuovo) a quel che ci sta prima. In quel caso "nome_colonna_tabella_1 AS valore_massimo" viene assegnato a nome_colonna_tabella_1 l'etichetta valore_massimo

    facci sapere se funziona la query..

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    50
    La query funziona, però a me servono anche le altre colonne, cioè mi serve risalire a chi corrisponde quel valore più alto, come posso fare??
    P.S.:
    ecco lo script
    Codice PHP:
    <?php $connessione=mysql_connect('localhost','root',''); $selezione=mysql_select_db("utente",$connessione); $query=mysql_query("SELECT Voto AS valore_massimo, 'Prova' AS tabella FROM Prova UNION SELECT Voto, 'prova1' FROM prova1 ORDER BY valore_massimo DESC LIMIT 1 "); $query2=mysql_result($query,0,'valore_massimo'); echo"$query2"?>

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    50
    ho risolto da solo il problema , grazie per l'aiuto...

    P.S.: Scusate per il doppio post ma quello precedente non potevo più modificarlo perchè sono scaduti il 60 minuti...mi disp

  8. #8
    Utente di HTML.it L'avatar di Mi|{y
    Registrato dal
    Apr 2003
    Messaggi
    117
    Si in effetti mi sembrava pigliasse solo il primo valore come valore massimo ma non sono un espero di mysql, forse Magicale s'è scordato, o ha lasciato sott'inteso qualcosa..

    Posta come hai risolto potrebbe servire!
    Grazie

  9. #9
    Originariamente inviato da Mi|{y
    Si in effetti mi sembrava pigliasse solo il primo valore come valore massimo ma non sono un espero di mysql, forse Magicale s'è scordato, o ha lasciato sott'inteso qualcosa..

    Posta come hai risolto potrebbe servire!
    Grazie
    Se servono altri dati, come ad esempio l'ID, basta aggiungerli. L'importante è che ogni select della union selezioni lo stesso numero di colonne, nello stesso ordine e tipo
    codice:
    SELECT nome_colonna_tabella_1 AS valore_massimo, 'tabella1' AS tabella, nome_tabella_1.id AS id FROM nome_tabella_1
    
    UNION
    SELECT nome_colonna_tabella_2, 'tabella2', nome_tabella_2.id  FROM nome_tabella_2 
    
    ...
    UNION
    SELECT nome_colonna_tabella_N, 'tabellaN', nome_tabella_N.id  FROM nome_tabella_N 
    
    ORDER BY valore_massimo DESC 
    
    LIMIT 1
    Full Stack Developer presso Advice Lab
    Bonus Bitcoin
    Moon Bitcoin

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.