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.
    • 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