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. Problemi mysql con condizione
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • T
      thedarkita ModSenior • ultima modifica di

      Ciao oraposso,

      prova cosi:

      
      SELECT adid, adtitle, COUNT(email) AS tot, email, code, cityid FROM $t_ads 
      WHERE UNIX_TIMESTAMP(createdon) <= '".$improve_date."' 
      AND toplist = '0' 
      GROUP BY email
      HAVING tot <= '".$numero_email."'
      
      
      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • O
        oraposso User • ultima modifica di

        Nonostante non dia nessun errore, non funziona. Ti ringrazio per la tua risposta, comunque credo che ci siamo avvicinati.

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • T
          thedarkita ModSenior • ultima modifica di

          Sarebbe meglio mettere:
          [php] mysql_query($sql); or die(mysql_error());[/php]
          Perchè la sintassi della query precedente avrebbe dovuto generarti errore.

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • O
            oraposso User • ultima modifica di

            La clausola HAVING svolge una funzione di selezione delle righe, esattamente come la WHERE. La differenza è che la WHERE viene applicata sulle righe delle tabelle originali, mentre la HAVING viene applicata sulle righe della tabella risultato dopo i raggruppamenti richiesti dalle GROUP BY. In pratica, è utile per effettuare test sui valori restituiti dalle funzioni di colonna.

            IO ho bisogni di applicare la condizione direttamente sulla tabella.

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • O
              oraposso User • ultima modifica di

              @Thedarkita said:

              [..]

              La funzione e gia inclusa.
              Ottengo il risultato, dall'interrogazione della tabella, se escludo AND tot <= '".$improve_email."' (Che in pratica dovrebbe controllare il numero di email presenti nei record)

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • O
                oraposso User • ultima modifica di

                @oraposso said:

                La funzione e gia inclusa.
                Ottengo il risultato, dall'interrogazione della tabella, se escludo AND tot <= '".$improve_email."' (Che in pratica dovrebbe controllare il numero di email presenti nei record)

                Non capisco, perche mi accetti la seconda condizione (AND toplist = '0' ), e non la prima. Mi sto rovinado le giornate. :smile5:

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • T
                  thedarkita ModSenior • ultima modifica di

                  Vedi che la sintassi corretta è con HAVING e non con WHERE per quello che stai facendo tu.
                  Se senza quello funziona allora con la query che ii ho dato io deve funzionare per forza.
                  Comunque se non metti il mysql_error come ti ho detto. e mi riporti l'errore è impossibile dirti qualsiasi cosa oltre ciò che ti ho già detto.

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • O
                    oraposso User • ultima modifica di

                    @Thedarkita said:

                    [...]

                    Ok, includerò anche questo controllo sul database immediatamente.

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • O
                      oraposso User • ultima modifica di

                      La connessione a database, avviene corretamente, il tutto funzione, in particolare con la prima condizione WHERE, mi restituisce esattamente i risultati che voglio ottenere dalla prima interrogazione, la seconda condizione AND tot <= '".$below_multipost."' , che dovrebbe estrapolare il numero di email presenti in un certo lasso temporale, non funziona, ma non perche non si connette al database, ma solo perche la condizione non e in grado di estrapolare i dati (Non ho idea a cosa sia dovuto), ho inserito la condizione HAVING, ma ottengo lo stesso buio che ottenevo prima.

                      Forse quello che sto cercando di fare, va visto sotto una logica diversa, non so, ma sicuramente quella condizione, non funziona per qualche motivo.

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • T
                        thedarkita ModSenior • ultima modifica di

                        Ma queste query come le provi? Perchè se una query non funziona devi farti dare l'errore, altrimenti dobbiamo tirare ad indovinare.
                        Fai un echo della query cosi:
                        [php]
                        echo "SELECT adid, adtitle, COUNT(email) AS tot, email, code, cityid FROM $t_ads
                        WHERE UNIX_TIMESTAMP(createdon) <= '".$improve_date."'
                        AND toplist = '0'
                        GROUP BY email
                        HAVING tot <= '".$numero_email."'";
                        [/php]
                        Prendi la query mostrata sullo schermo e la fai eseguire da phpmyadmin, e vedi se restituisce un errore o un insieme vuoto.

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • O
                          oraposso User • ultima modifica di

                          @Thedarkita said:

                          [...]

                          OK.

                          Se vuoi posso girati la pagine con il codice, e anche la tabella in questione, magari troviamo una soluzione a questo dilemma.

                          Intanto grazie, ci sentiamo pomeriggio, fammi sapere se vuoi i file

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • O
                            oraposso User • ultima modifica di

                            $sql = "SELECT adid, adtitle, COUNT(email) AS tot, email, code, cityid FROM $t_ads
                            WHERE UNIX_TIMESTAMP(createdon) <= '".$improve_date."'
                            AND toplist = '0'
                            GROUP BY email
                            HAVING tot <= '".$below_multipost."'";

                            Ho provato nuovamente, ma sembra, non escludere quei risultati non richiesti, nel senso che mi da sempre dei risultati, nonostante imposti la variabile $below_multipost con valori maggiori e minori.

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • O
                              oraposso User • ultima modifica di

                              Ora funziona tutto correttamente, il problema stava nel < >, grazie per avermi risolto il problema.

                              A buon rendere

                              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