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