Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Order by (SQL)
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • I
      ienavr User Attivo • ultima modifica di

      spiegati meglio...

      la query è corretta e mi sembra strano che non funzioni...

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • R
        raiken User Attivo • ultima modifica di

        Ti faccio vedere direttamente la pagina dove ho il problema

        http://www.skaweb.it/concorsi/1/classifica/

        come vedi a parità di punti dovrebbe mettermeli in ordine di tempo DESC invece sono tutti mischiati.

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • I
          ienavr User Attivo • ultima modifica di

          a parità di punti il tempo non dovrebbe essere ASC? così sta sopra chi ci ha messo meno...o sbaglio?

          ad ogni modo sarebbe ottimo se postassi direttamente il codice PHP cui fai fare la query e poi il ciclo. Perchè ti assicuro che ho provato in locale ed andava..

          oppure attendiamo pareri + illuminanti 🙂

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • R
            raiken User Attivo • ultima modifica di

            Ho messo ASC invece che DESC (non mi ero accorto di questo errore) e per la prima posizione me li mette in ordine, nelle altre me li mette DESC..

            Ecco il codice, speriamo che sia di aiuto.

            
            <?php
            
            $query_partecipanti=mysql_query("select * from Concorso_Partecipante where ID_Concorso='$id_concorso' order by Risultato DESC, Tempo ASC");
            
            while($row_partecipanti=mysql_fetch_array($query_partecipanti)){
            
            $posizione=++$posizione;
            
            echo"<b>$posizione</b>: $row_partecipanti[Partecipante] con <b>$row_partecipanti[Risultato]</b> punti in <b>$row_partecipanti[Tempo]</b> secondi<br />";
            
            }
            
            ?>
            
            
            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • R
              raiken User Attivo • ultima modifica di

              Ho messo ASC invece che DESC (non mi ero accorto di questo errore) e per la prima posizione me li mette in ordine, nelle altre me li mette DESC..

              Ecco il codice, speriamo che sia di aiuto.

              
              <?php
              
              $query_partecipanti=mysql_query("select * from Concorso_Partecipante where ID_Concorso='$id_concorso' order by Risultato DESC, Tempo ASC");
              
              while($row_partecipanti=mysql_fetch_array($query_partecipanti)){
              
              $posizione=++$posizione;
              
              echo"<b>$posizione</b>: $row_partecipanti[Partecipante] con <b>$row_partecipanti[Risultato]</b> punti in <b>$row_partecipanti[Tempo]</b> secondi<br />";
              
              }
              
              ?>
              
              
              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • C
                cantoniere User • ultima modifica di

                Forse è un caso, ma i tempi sono ordinati in ordine ascii (come si fa con le stringhe).
                Nel database la colonna tempo è NUMBER o VARCHAR ?

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • R
                  raiken User Attivo • ultima modifica di

                  varchar(15)

                  perchè cambia qualcosa nell'ordine in base al tipo di campo?

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • C
                    cantoniere User • ultima modifica di

                    Sì.
                    Le stringhe vengono ordinate in ordine ascii (che coincide con l'alfabetico, i numeri vengono prima delle minuscole e poi delle maiuscole, mi pare), i numeri e le date vengono ordinati secondo l'ordine "intuitivo".
                    Comunque per risolvere il tuo problema dovresti convertire tempo in decimale.
                    Mi pare che si faccia: invece di select tempo, campo2...
                    select cast (tempo, decimal), campo 2

                    (non puoi usare l'asterisco ma elencare i campi)

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • R
                      raiken User Attivo • ultima modifica di

                      Ho letto qua sull'uso di cast:

                      http://database.html.it/guide/lezione/2453/operatori-e-funzioni-i/

                      non capisco come poter mettere all'interno di uno stesso SELECT sia il CAST che il resto degli operatori che mi servono.

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • C
                        cantoniere User • ultima modifica di

                        Prova a sostituire la riga che hai tu con questa:
                        $query_partecipanti=mysql_query("select * from Concorso_Partecipante where ID_Concorso='$id_concorso' order by Risultato DESC, CAST (Tempo as numeric) ASC");

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • R
                          raiken User Attivo • ultima modifica di

                          nulla mi da un warning

                          Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /web/htdocs/www.skaweb.it/home/concorso_classifica.php on line 40

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • I
                            ienavr User Attivo • ultima modifica di

                            e con questo codice ti funziona?

                            $query_partecipanti=mysql_query("select * from Concorso_Partecipante where ID_Concorso='$id_concorso' order by Risultato DESC, CAST (Tempo as SIGNED) ASC");

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • R
                              raiken User Attivo • ultima modifica di

                              sempre lo stesso errore 🙂

                              pazienza lascerò così.

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              • I
                                ienavr User Attivo • ultima modifica di

                                hai provato anche a togliere lo spazio tra CAST e (Tempo?

                                scrivendo cioè

                                $query_partecipanti=mysql_query("select * from Concorso_Partecipante where ID_Concorso='$id_concorso' order by Risultato DESC, CAST(Tempo as SIGNED) ASC");

                                scusa ma sì va per tentativi e credo che la sintassi di prima fosse scorretta

                                0 Miglior Risposta Ringrazia Cita Rispondi

                                  1 Risposta Ultima Risposta
                                • R
                                  raiken User Attivo • ultima modifica di

                                  stavolta funziona 🙂

                                  grazie mille!

                                  0 Miglior Risposta Ringrazia Cita Rispondi

                                    1 Risposta Ultima Risposta
                                  • I
                                    ienavr User Attivo • ultima modifica di

                                    prego...

                                    alla fine ce l'abbiamo fatta!

                                    0 Miglior Risposta Ringrazia Cita Rispondi

                                      1 Risposta Ultima Risposta
                                    Caricamento altri post
                                    Rispondi
                                    • Topic risposta
                                    Effettua l'accesso per rispondere
                                    • Da Vecchi a Nuovi
                                    • Da Nuovi a Vecchi
                                    • Più Voti