• Home
  • Forum
  • Fare Web
  • PHP

Cancellare record a tempo con formato data mktime

  • Creatore Discussione Creatore Discussione Max61
  • Data di inizio Data di inizio 5 Nov 2014
M

Max61

Utente Attivo
2 Mar 2014
760
4
18
  • 5 Nov 2014
  • #1
Salve, ho creato una pagina che con il codice sotto mi cancella i record che sono più vecchi di 30 giorni, tutto ok se il formato data è Y-m-d o d-m-Y.

PHP:
$query = "SELECT from appuntamenti WHERE cancella_record_30giorni <= DATE_SUB(CURDATE(), INTERVAL 30 day)";

Ho la necessità di cancellare record con la data formato mktime
PHP:
mktime(0, 0, 0, $m, 1, $y));
,
vi chiedo aiuto nel modificare il codice
PHP:
$query = "SELECT from appuntamenti WHERE cancella_record_30giorni <= DATE_SUB(CURDATE(), INTERVAL 30 day)";
nel formato mktime.

Grazie

Max61
 
Ultima modifica: 5 Nov 2014

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 5 Nov 2014
  • #2
Ciao, la funzione date() accetta come secondo parametro la data in formato timestamp
PHP:
$query = "SELECT from appuntamenti WHERE cancella_record_30giorni <='" . date("Y-m-d", mktime(0, 0, 0, $m, 1, $y)) . "'";
 
M

Max61

Utente Attivo
2 Mar 2014
760
4
18
  • 5 Nov 2014
  • #3
criric ha scritto:
Ciao, la funzione date() accetta come secondo parametro la data in formato timestamp
PHP:
$query = "SELECT from appuntamenti WHERE cancella_record_30giorni <='" . date("Y-m-d", mktime(0, 0, 0, $m, 1, $y)) . "'";
Clicca per allargare...

Ciao e grazie per la sollecita risposta, ma siccome che sono novizio di php non riesco a farlo funzionare, mi da questi errori:

Notice: Undefined variable: m in C:\xampp\htdocs\prenotazioneauto\views\CancellaDopo30Giorni.php on line 13

Errore:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from appuntamenti WHERE str_data <='1999-12-01'' at line 1

Notice: Undefined variable: y in C:\xampp\htdocs\prenotazioneauto\views\CancellaDopo30Giorni.php on line 13
non trova riferimenti ai parametri $m e $y, ma non so come passarglieli.

Ti invio il codice completo della pagina ringraziandoti per l'infinita pazienza...

PHP:
<?php
     // connessione al database
include('Connessione.php');

	 $db= 'appuntamenti';
		
     $db = mysql_connect($host, $user, $password) or die ("Impossibile connettersi al server");
			
     mysql_select_db($database, $db) or die ("impossibile connettersi al database");
	        
        function eliminaRegistrazioni() { 
			
			$query = "SELECT from appuntamenti WHERE cancella_record_30giorni <='" . date("Y-m-d", mktime(0, 0, 0, $m, 1, $y)) . "'";
            
            $res = mysql_query($query);  
                         
            if(!$res) { 
                die("Errore:" . mysql_error()); 
            } 

        } 
         
        // richiamiamo la funzione 
        eliminaRegistrazioni(); 

   header('location:../views/MenuPrincipale.php');//reindirizza alla pag        
        ?>

Max61
 
Ultima modifica: 5 Nov 2014
M

Max61

Utente Attivo
2 Mar 2014
760
4
18
  • 6 Nov 2014
  • #4
Max61 ha scritto:
Ciao e grazie per la sollecita risposta, ma siccome che sono novizio di php non riesco a farlo funzionare, mi da questi errori:

Notice: Undefined variable: m in C:\xampp\htdocs\prenotazioneauto\views\CancellaDopo30Giorni.php on line 13

Errore:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from appuntamenti WHERE str_data <='1999-12-01'' at line 1

Notice: Undefined variable: y in C:\xampp\htdocs\prenotazioneauto\views\CancellaDopo30Giorni.php on line 13
non trova riferimenti ai parametri $m e $y, ma non so come passarglieli.

Ti invio il codice completo della pagina ringraziandoti per l'infinita pazienza...

PHP:
<?php
     // connessione al database
include('Connessione.php');

	 $db= 'appuntamenti';
		
     $db = mysql_connect($host, $user, $password) or die ("Impossibile connettersi al server");
			
     mysql_select_db($database, $db) or die ("impossibile connettersi al database");
	        
        function eliminaRegistrazioni() { 
			
			$query = "SELECT from appuntamenti WHERE cancella_record_30giorni <='" . date("Y-m-d", mktime(0, 0, 0, $m, 1, $y)) . "'";
            
            $res = mysql_query($query);  
                         
            if(!$res) { 
                die("Errore:" . mysql_error()); 
            } 

        } 
         
        // richiamiamo la funzione 
        eliminaRegistrazioni(); 

   header('location:../views/MenuPrincipale.php');//reindirizza alla pag        
        ?>

Max61
Clicca per allargare...


Sono riuscito a fare piccoli passi, ma ancora mi da errore di sintassi: Hai un errore nella sintassi SQL; controllare il manuale che corrisponde alla versione del server MySQL per la sintassi diritto di utilizzare nei pressi di '' 1412632800 ')' at line 1.

Qualche suggerimento?

PHP:
$query = "DELETE from appuntamenti WHERE str_data <= date ('d-m-Y',". "'" . mktime(0,0,0,date('m'),date('d')-30,date('Y')) .  "')" ;

Grazie
Max61
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 6 Nov 2014
  • #5
Hai messo male quasi tutti gli apici
PHP:
$query = "DELETE from appuntamenti WHERE str_data <= '" . date('Y-m-d', mktime(0, 0, 0, date('m'), date('d') - 30, date('Y'))) . "'";
 
M

Max61

Utente Attivo
2 Mar 2014
760
4
18
  • 6 Nov 2014
  • #6
criric ha scritto:
Hai messo male quasi tutti gli apici
PHP:
$query = "DELETE from appuntamenti WHERE str_data <= '" . date('Y-m-d', mktime(0, 0, 0, date('m'), date('d') - 30, date('Y'))) . "'";
Clicca per allargare...

Grazie di nuovo per il tempo che mi stai dedicando e sicuramente non mi sono spiegato bene, riprovo:
con il codice che mi hai costruito te cancellerei un record con il formato data (Y-m-d), infatti quando lancio la tua query mi evidenzia il formato data str_data <= '2014-10-07''.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from appuntamenti
PHP:
WHERE str_data <= '2014-10-07'' at line 1


Io invece sto cercando di cancellare un record formato VARCHAR str_data <= date ('d-m-Y','1412632800')' at line 1 infatti la data del record che vorrei cancellare ha proprio questo valore: 1412632800 cioè un record di 30 giorni fa, 07-10-2014.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from appuntamenti
PHP:
WHERE str_data <= date ('d-m-Y','1412632800')' at line 1.

Grazie
Max61
 
Ultima modifica: 6 Nov 2014

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.606
54
48
TN
  • 7 Nov 2014
  • #7
togli la funzione date()
PHP:
$query = "DELETE from appuntamenti WHERE str_data <= '" . mktime(0, 0, 0, date('m'), date('d') - 30, date('Y')) . "'";
ma non si fanno calcoli sui campi stringa, non funzionerà mai
 
M

Max61

Utente Attivo
2 Mar 2014
760
4
18
  • 7 Nov 2014
  • #8
Non mi chiedere come mai ma togliendo la funzione date() come hai suggerito tu FUNZIONA PERFETTAMENTE, cancella i record vecchi di 30 giorni e più.

Adesso mi farebbe comodo migliorare il calendario eventi, il codice l'ho copiato dal sito mrwebmaster alla pagina "https://www.mrw.it/php/calendario-agenda-php-mysql_7163_2.html" e modificato leggermente ma nella sostanza è quello. Ho reso cliccabili tutte le date, sia quelle occupate che quelle libere, si differenziano dallo sfondo rosso e verde. Le date occupate (rosse) linkano al record della prenotazione, vorrei fare la stessa anche con le giornate libere (colore verde), in parte già lo faccio infatti cliccandoci si apre la pagina di prenotazione ma vorrei che la data fosse inserita automaticamente, Esempio: clicco sul giorno 10 del mese di novembre (nel calendario verde, quindi libero) e all'apertura della pagina di inserimento la data fosse 10-11-2014. Non so se questo è possibile...

Per comodità aggiungo il codice del calendario:
PHP:
<?php

function ShowCalendar($m,$y)
{
  if ((!isset($_GET['d']))||($_GET['d'] == ""))
  {
    $m = date('n');
    $y = date('Y');
  }else{
    $m = (int)strftime( "%m" ,(int)$_GET['d']);
    $y = (int)strftime( "%Y" ,(int)$_GET['d']);
    $m = $m;
    $y = $y;
  }
  $precedente = mktime(0, 0, 0, $m -1, 1, $y);
  $successivo = mktime(0, 0, 0, $m +1, 1, $y);

  $nomi_mesi = array(
    "Gennaio",
    "Febbraio",
    "Marzo",
    "Aprile",
    "Maggio",
    "Giugno", 
    "Luglio",
    "Agosto",
    "Settembre",
    "Ottobre",
    "Novembre",
    "Dicembre"
  );
  $nomi_giorni = array(
    "Lun",
    "Mar",
    "Mer",
    "Gio",
    "Ven",
    "Sab",
    "Dom"
  );

  $cols = 7;
  $days = date("t",mktime(0, 0, 0, $m, 1, $y)); 
  $lunedi= date("w",mktime(0, 0, 0, $m, 1, $y));
  if($lunedi==0) $lunedi = 7;
  echo "<table>\n"; 
  echo "<tr>\n
  <td colspan=\"".$cols."\">
  

  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b><span style=\"color:red; font-size: 12pt\"><a href=\"?d=" . $precedente . "\"><img src='../images/prev.gif' alt='previous' /></a>
  " . $nomi_mesi[$m-1] . "
  <a href=\"?d=" . $successivo . "\"><img src='../images/next.gif' alt='next' /></a></td></tr>";
  
  
  foreach($nomi_giorni as $v)
  {
    echo "<td><b>".$v."</b></td>\n";
  }
  echo "</tr>";

  for($j = 1; $j<$days+$lunedi; $j++)
  {
    if($j%$cols+1==0)
    {
      echo "<tr>\n";
    }

    if($j<$lunedi)
    {
      echo "<td> </td>\n";
    }else{
      $day= $j-($lunedi-1);
      $data = strtotime(date($y."-".$m."-".$day));
	  $oggi = strtotime(date("Y-m-d"));
      include 'config.php';
      $sql = "SELECT str_data FROM appuntamenti";
      $result = mysql_query($sql) or die (mysql_error());
      if(mysql_num_rows($result) > 0)
      {
        while($fetch = mysql_fetch_array($result))
        {
          $str_data = $fetch['str_data'];
          if ($str_data == $data)
          {
		  $day = "<a href=\"Prenotazioni.php?day=$str_data\"><span style=\"color:#FFFFCC; font-size: 14pt\"><span style=\"color:#FFFFCC height:1;width:1; background-color:red\">$day</span>";
		  }
        }
      }
      if($data != $oggi)
      {

           \\QUI VORREI CHE LA DATA SU CUI CLICCO FOSSE INSERITA ALL APERTURA DELLA PAGINA Prenotazione_insert.php
	    echo "<td><a href=\"Prenotazione_insert.php?day=$str_data\"><span style=\"color:#FFFFCC; font-size: 14pt\"><span style=\"color:#FFFFCC height:1;width:1; background-color:green\">$day<br></span>";

		}else{

           \\QUI VORREI CHE LA DATA SU CUI CLICCO FOSSE INSERITA ALL APERTURA DELLA PAGINA Prenotazione_insert.php
        echo "<td><a href=\"Prenotazione_insert.php?day=$str_data\"><span style=\"color:#FFFFCC; font-size: 14pt\"><span style=\"color:#FFFFCC height:1;width:1; background-color:#1D4F82\">$day<br></span>";
		
      }
    }

    if($j%$cols==0)
    {
      echo "</tr>";
    }
  }
  echo "<tr></tr>";
  echo "</table>";
}
ShowCalendar(date("m"),date("Y")); 
?>

Infinitamente GRAZIE da un neofita autodidatta

Max61
 
Ultima modifica: 7 Nov 2014
Devi accedere o registrarti per poter rispondere.

Discussioni simili

[PHP] cancellare/aggiornare record DB
  • ste80
  • 5 Lug 2017
  • PHP
  • 2
Risposte
24
Visite
6K
PHP 9 Lug 2017
ste80
A
Cancellare record su più tabelle con PHP
  • alessiof86
  • 10 Lug 2014
  • PHP
  • 2
Risposte
27
Visite
6K
PHP 15 Lug 2014
alessiof86
A
S
[RISOLTO]Aiuto per Record che si deve autocancellare
  • siriano
  • 6 Nov 2013
  • PHP
Risposte
16
Visite
3K
PHP 9 Nov 2013
siriano
S
[MySQL] Delete Record (cancellare una riga)
  • novello88
  • 3 Mar 2012
  • MySQL
Risposte
1
Visite
24K
MySQL 3 Mar 2012
borgo italia
P
Cancellare record
  • Prudie
  • 13 Mag 2008
  • ASP.NET
Risposte
0
Visite
2K
ASP.NET 13 Mag 2008
Prudie
P
Cancellare un record
  • grottafelix
  • 27 Mar 2004
  • Classic ASP
Risposte
4
Visite
2K
Classic ASP 10 Apr 2004
dernier
Come cancellare le colonne di wordpress
  • matteoraggi
  • 23 Mar 2024
  • WordPress
Risposte
0
Visite
1K
WordPress 23 Mar 2024
matteoraggi
P
Mysql lento a cancellare
  • paolo.ladoni
  • 18 Nov 2022
  • MySQL
Risposte
1
Visite
1K
MySQL 22 Nov 2022
marino51
Cancellare una specifica email da un elenco in un file txt
  • Cosina
  • 24 Set 2020
  • PHP
Risposte
3
Visite
1K
PHP 24 Set 2020
Cosina
S
Cancellare una riga MYSQL
  • Silvio0505
  • 28 Mag 2020
  • PHP
Risposte
1
Visite
2K
PHP 31 Mag 2020
IClaude
G
Con Microsoft Outlook 2016 come si possono cancellare le mail doppie?
  • Giovannino60
  • 29 Dic 2019
  • Posta Elettronica
Risposte
0
Visite
2K
Posta Elettronica 29 Dic 2019
Giovannino60
G
[PHP] Cancellare una riga da un file di testo in base al nome
  • Cosina
  • 27 Mag 2019
  • PHP
Risposte
2
Visite
4K
PHP 27 Mag 2019
Cosina
[PHP] Cancellare una riga da un file txt in base alla data
  • Cosina
  • 27 Mag 2019
  • PHP
Risposte
1
Visite
2K
PHP 27 Mag 2019
macus_adi
L
  • Bloccata
conferma prima di cancellare con javascript e php
  • luigi777
  • 8 Feb 2019
  • PHP
Risposte
16
Visite
5K
PHP 13 Feb 2019
Max 1
H
cancellare avatar in codice PHP
  • halla
  • 15 Nov 2018
  • PHP
Risposte
2
Visite
2K
PHP 15 Nov 2018
halla
H
M
[PHP] Cancellare singolo file da cartella su server
  • Max61
  • 20 Ago 2018
  • PHP
Risposte
3
Visite
2K
PHP 21 Ago 2018
alankanz
A
[PHP] Cancellare riga database a scelta dell'utente
  • antonio15198
  • 9 Ago 2018
  • PHP
Risposte
2
Visite
4K
PHP 9 Ago 2018
Max 1
[PHP] sql aggiungere dato in una tabella senza cancellare contenuto
  • trattorino
  • 20 Giu 2018
  • PHP
Risposte
6
Visite
2K
PHP 24 Giu 2018
trattorino
C
Cancellare un elemento del DOM
  • cleto
  • 7 Giu 2018
  • jQuery
Risposte
4
Visite
2K
jQuery 27 Ott 2018
cleto
C
D
[PHP] CANCELLARE MAILPLAN
  • digitaldavid
  • 28 Mag 2018
  • PHP
Risposte
2
Visite
1K
PHP 1 Giu 2018
macus_adi
Condividi:
Facebook X (Twitter) LinkedIn WhatsApp e-mail Condividi Link
  • Home
  • Forum
  • Fare Web
  • PHP
  • Italiano
  • Termini e condizioni d'uso del sito
  • Policy Privacy
  • Aiuto
  • Home
Community platform by XenForo® © 2010-2024 XenForo Ltd. | Traduzione a cura di XenForo Italia
Menu
Accedi

Registrati

  • Home
  • Forum
    • Nuovi Messaggi
    • Cerca...
  • Novità
    • Featured content
    • Nuovi Messaggi
    • Ultime Attività
X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?

X

Privacy & Transparency

We use cookies and similar technologies for the following purposes:

  • Personalized ads and content
  • Content measurement and audience insights

Do you accept cookies and these technologies?