Melding krijgen wanneer de datum verstreken is van een klant

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Melding krijgen wanneer de datum verstreken is van een klant

      Hallo,
      ik heb namelijk een vraag.

      Ik ben namelijk bezig met een klantensysteem te bouwen voor een fitnesscentrum.
      Nu de bedoeling is namelijk wanneer we een nieuwe abonnement toevoegen met een begin en een eind datum dat hij bij een verlopen abonnee een melding van verstuurd in het admin paneel.

      Heeft er iemand een idee of er een bestaand script zoals deze of hoe ik dit zou kunnen aanpakken.

      Mvg

      The post was edited 1 time, last by webdude ().

    • Oke ik heb een cronjob gemaakt kan iemand me vertellen of dit een goeie manier is ?

      PHP:

      PHP Source Code

      1. <?php
      2. require "config.php";
      3. $dertig_dagen = "SELECT * FROM klanten WHERE maanden = 1 AND start_date BETWEEN DATE_SUB(NOW(),INTERVAL 29 DAY) AND DATE_SUB(NOW(), INTERVAL 30 DAY)";
      4. $execute = mysql_query($dertig_dagen);
      5. while($row = mysql_fetch_array($execute)){
      6. $sql = "INSERT INTO `logs_klanten` (`klanten_id`,`name`, `lastname`, `melding`) VALUES ('".$row['id']."','".$row['name']."', '".$row['lastname']."', 'zijn abonnement is verlopen')";
      7. mysql_query($sql);
      8. }
      9. ?>
      Display All

      SQL:

      SQL-Query

      1. CREATE TABLE `logs_klanten` (
      2. `id` int(10) NOT NULL,
      3. `klanten_id` int(10) NOT NULL,
      4. `name` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
      5. `lastname` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
      6. `melding` text CHARACTER SET utf8
      7. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    • Wat je is is de time () vergelijken met de eind datum van het abonnement dus:

      If ($einddatumtimestamp < time ()){
      # verzend mail of dergelijke
      #log ook of bericht al verzonden is of net zoals je niet elke dag een mail binnen krijgt
      }
      Edit was iets te snel;
      Op manier dat je nu doet zou ik kijken naar join fucntie van mysqli om meteen in de query te checken of mail al keer verzonden is.
      The law is what I write down on paper
    • Zou ik dan niet beter date(); gebruiken met deze vergelijking ?

      MOnkNL wrote:

      Wat je is is de time () vergelijken met de eind datum van het abonnement dus:

      If ($einddatumtimestamp < time ()){
      # verzend mail of dergelijke
      #log ook of bericht al verzonden is of net zoals je niet elke dag een mail binnen krijgt
      }
      Edit was iets te snel;
      Op manier dat je nu doet zou ik kijken naar join fucntie van mysqli om meteen in de query te checken of mail al keer verzonden is.
    • Het werkt bijna alleen heb ik nu ene probleem dat hij niet ziet of dat $date groter is of $end_date
      want hij voegt nu alle leden toe aan logs maar ook nog de klanten waarvan de dataum's nog niet verstreken zijn en hoger moeten zijn

      SQL-Query

      1. CREATE TABLE `logs_klanten` (
      2. `id` int(10) NOT NULL,
      3. `klanten_id` int(10) NOT NULL,
      4. `name` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
      5. `lastname` varchar(255) CHARACTER SET utf8 DEFAULT NULL,
      6. `melding` text CHARACTER SET utf8,
      7. `end_date` date NOT NULL
      8. ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

      PHP Source Code

      1. <?php
      2. require "config.php";
      3. $ophalen = "SELECT * FROM klanten";
      4. $execute = mysql_query($ophalen);
      5. $end_date = "".$execute['end_date']."";
      6. $date = date("Y-m-d");
      7. if ($date > $end_date){
      8. while($row = mysql_fetch_array($execute)){
      9. mysql_query("INSERT INTO `logs_klanten` (`klanten_id`,`name`, `lastname`, `melding`,`end_date`) VALUES ('".$row['id']."','".$row['name']."', '".$row['lastname']."', 'zijn abonnement is verlopen','".$row['end_date']."')");
      10. }
      11. }
      12. ?>
      Display All


      SQL-Query

      1. CREATE TABLE `klanten` (
      2. `id` int(10) UNSIGNED NOT NULL,
      3. `email` varchar(255) DEFAULT NULL,
      4. `name` varchar(255) DEFAULT NULL,
      5. `lastname` varchar(255) DEFAULT NULL,
      6. `phone` varchar(255) DEFAULT NULL,
      7. `adress` varchar(255) DEFAULT NULL,
      8. `country` varchar(255) DEFAULT NULL,
      9. `start_date` date DEFAULT NULL,
      10. `end_date` date DEFAULT NULL,
      11. `maanden` varchar(255) NOT NULL DEFAULT '1'
      12. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
      13. --
      14. -- Gegevens worden geëxporteerd voor tabel `klanten`
      15. --
      16. INSERT INTO `klanten` (`id`, `email`, `name`, `lastname`, `phone`, `adress`, `country`, `start_date`, `end_date`, `maanden`) VALUES
      17. (1, '[email protected]', 'dean', 'werveke', '0471242180', 'straat 29 8450 bredene', 'belgë', '2016-04-25', '2016-04-24', '1'),
      18. (2, '[email protected]', 'Koenraad', 'Desaever', '0486051187', 'straat 18 8400 Oostende', 'België', '2016-05-25', '2017-05-25', '1');
      Display All