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. Verifica disponibilità di un record in determinate date.
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • C
      codencode User Attivo • ultima modifica di

      Ciao, la funzione mysql_query () invia una query, e restituisce, in caso ci siano record che soddisfino la clausola WHERE, un resourcead.
      Quindi se vai a testare il risultato di tale funzione risulterà sempre true, tranne se l'sql risulta sintatticamente sbagliata.
      Per fare ciò che serve si potrebbe eseguire un conteggio dei record restituiti, es:
      $results = mysql_query($query) or die (mysql_error());
      $num = mysql_num_rows($results);
      if ($num==0){
      echo($id." è occupato dal: ".$dal." al: ".$al." " );
      }else{
      $query_ins="INSERT INTO calendario_lavori (id_mezzi, dal, al) VALUES ('$id', '$dal', '$al')";
      $results_ins = mysql_query($query_ins) or die (mysql_error());
      echo ("ok");}
      }

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • T
        testapazza User Newbie • ultima modifica di

        Ciao, grazie per aver risposto...
        ho provato, ma ottengo il risultato opposto. Adesso inserisce i dati anche quando non dovrebbe. Hai qualche altra soluzione? Te ne sarei grato.:gthi:

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • C
          codencode User Attivo • ultima modifica di

          Mi devi scusare, bisogna invertire il contenuto dell'if con il contenuto dell'else, ovvero:
          if ($num==0){
          echo($id." è occupato dal: ".$dal." al: ".$al." " );
          }else{
          $query_ins="INSERT INTO calendario_lavori (id_mezzi, dal, al) VALUES ('$id', '$dal', '$al')";
          $results_ins = mysql_query($query_ins) or die (mysql_error());
          echo ("ok");}
          }
          diventa:
          if ($num==0){
          $query_ins="INSERT INTO calendario_lavori (id_mezzi, dal, al) VALUES ('$id', '$dal', '$al')";
          $results_ins = mysql_query($query_ins) or die (mysql_error());
          echo ("ok");
          }else{
          echo($id." è occupato dal: ".$dal." al: ".$al." " );
          }

          Questo perchè la query di insert va effettuata quando non ci sono record relativi alla query di selezione rispetto al periodo.

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • T
            testapazza User Newbie • ultima modifica di

            Avevo già provato a mettere la condizione $num > 0 ottenendo lo stesso risultato... ma continua a non funzionare.

            Adesso mi chiedo, ma può essere che sia la query SELECT ad avere problemi?

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • C
              codencode User Attivo • ultima modifica di

              Se fosse sbagliata la select ti stamperebbe l'errore relativo, visto che c'è die(mysql_error());

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • T
                testapazza User Newbie • ultima modifica di

                Problemi a livello di logica, che non trova niente... Secondo me dovrebbe andare bene per la ricerca che deve fare, secondo te?

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • C
                  codencode User Attivo • ultima modifica di

                  Posta la struttura della tabella calendario_lavori (potresti postare la query per la creazione)
                  così eseguo qualche test.

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • T
                    testapazza User Newbie • ultima modifica di

                    Grazie per l'aiuto...

                    [PHP]CREATE TABLE IF NOT EXISTS calendario_lavori (
                    id_calendario int(3) NOT NULL AUTO_INCREMENT,

                    id_mezzi int(3) NOT NULL,

                    desc_cantiere varchar(50) NOT NULL,

                    dal date NOT NULL,

                    al date NOT NULL,

                    conferma int(1) NOT NULL,

                    PRIMARY KEY (id_calendario),

                    KEY id (id_calendario)
                    ) TYPE=MyISAM AUTO_INCREMENT=1 ;[/PHP]

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • C
                      codencode User Attivo • ultima modifica di

                      Allora ci sono in effetti ci sono 2 errori nella query di SELECT, uno è la mancanza di apici quando esegui il confronto con le date, mentre l'altro è relativo al confronto delle date, prova con la query seguente:
                      $query = "SELECT * FROM calendario_lavori
                      WHERE id_mezzi='$id'
                      AND (" . $dal . " <= dal AND
                      " . $dal . ">= al) OR
                      (" . $al . " <= dal AND " . $al . ">= al)";

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • T
                        testapazza User Newbie • ultima modifica di

                        niente da fare...:x

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • C
                          codencode User Attivo • ultima modifica di

                          Allora prova a postare il codice che hai aggiornato e posta anche i dati che utilizzi per fare il test.

                          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