UPDATE senza parametro

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
Salve come posso fare una query senza passargli il parametro GET o POST.?

Drovei mettere a tutti send=0 agli utenti scrtti alla newsletter.

questo e il codice che usavo con il parametro $row["email"].

PHP:
<?php
require_once(dirname(__FILE__) . '/inc.php');
require_once(dirname(__FILE__) . '/admin_mod.php');
$page = new Page;
$page->setTitle('Reset Newsletter');
$page->startBody();
$result =$db->query('SELECT * from  utenti_newsletter')or die($db->error);

while($row = $result->fetch_array())
{
			$query = $db->query("UPDATE utenti_newsletter SET send=0 WHERE `email`='".$row['email']."'") or die($db->error); 
			$msg = "fatto";
}

$page->endBody();
echo $page->render('layout/template.php');
?>

vi ringrazio molto se avete la soluzione.

buona giornata.
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
ciao se vi interessa questa e la tabella:

PHP:
   CREATE TABLE `utenti_newsletter` (
  `id` bigint(8) unsigned auto_increment,
  `fullname` varchar(255),
  `email` varchar(255) UNIQUE,
  `browser` varchar(255),
  `ip` varchar(255),
  `activationHash` varchar(255) ,
  `send` int  default '0',
  `active` int ,
  `data` datetime,
  `_update` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY  (`id`)) ENGINE = MyISAM;

protei whillerale andanto a prendere il campo data il più vecchio di 24h?
avete idee?

grazie mille.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
non ho capito bene:
il campo send è a 0 di default (al momento del primo INSERT dell'indirizzo email)
quando invii il campo send, per gli indirizzi inviati, cambia valore (immagino 1)
vorresti fare uno scrip che se passate 24 ore dall'invio risetti send a 0
è così?
intanto una cosa il campo
_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
si aggiorna al momento dell'invio? o no se no è per quello che hai aggiunto il campo data_send (parlando di ore farei timestamp anche quello)?
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
ciao
non ho capito bene:
il campo send è a 0 di default (al momento del primo INSERT dell'indirizzo email)
quando invii il campo send, per gli indirizzi inviati, cambia valore (immagino 1)
vorresti fare uno scrip che se passate 24 ore dall'invio risetti send a 0
è così?
intanto una cosa il campo
_update TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
si aggiorna al momento dell'invio? o no se no è per quello che hai aggiunto il campo data_send (parlando di ore farei timestamp anche quello)?

si voglio fare come hai detto tu.

per l'_update avevo letto sul manuale che ogni modifica sia update/insert veniva aggiornata la tabella se non mi sbaglio.

quindi come devo fare?
per adesso ho aggiunto allo script quello che invia le email questa cosa:
PHP:
$query = $db->query("UPDATE utenti_newsletter SET send=1 , data_send=Now() WHERE `email`='".$row['email']."'") or die($db->error);

hai idee?

grazie mille e buona giornata.
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
ha scordavo quella cosa di _update mi serve solo per la tabella ed invece data e data_send li aggiorno io e poi per far la possibiltà di vedere con data quando è stata inserita l'email e la data_send quando è stato inviata la newsletter.

grazie mille.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
si è giusto ad ogni invio aggiorni il record dell'utente. però io non userei now() ti riporta la data nel formato YYYY-MM-DD HH:MM:SS, per quello che userei il timestamp
ti do le indicazioni per il timestamp
PHP:
<?php
$query = $db->query("UPDATE utenti_newsletter SET send=1 , data_send=".time()." WHERE `email`='".$row['email']."'") or die($db->error);
?>
modificando i parametri del campo si intende.
poi per uppare tutti i record a cui hai inviato emeil piu di 24 ore fa
PHP:
<?php
$vecchie=time()-(24*60*60);//data attuale meno 24 ore
$query = $db->query("UPDATE utenti_newsletter SET send=0 WHERE data_send < $vecchie");
?>
potresti mettere queste righe subito dopo l'uppaggio dell'invio in modo che tutte le volte che invii le più vecchie si aggiornano, oppure farti uno script a parte che lanci ogni volta che vuoi.

dimenticavo
se vuoi essere più sicuro
PHP:
$query = $db->query("UPDATE utenti_newsletter SET send=0 WHERE data_send < $vecchie AND send=1");
 

luigi777

Utente Attivo
14 Feb 2008
1.086
1
38
42
Massa, Italy
ciao sono qui.
il sistema ha funzionato solo che devo sistemare una cosa. fare controllo per dire ad esempio "fatto", o visualizza gli elenci chi non ha fatto send=0
come si fa?

PHP:
 <?php
$vecchie=time()-(24*60*60);//data attuale meno 24 ore
$query = $db->query("UPDATE utenti_newsletter SET send=0 WHERE data_send < $vecchie AND send=1"");
?>

come posso fare?

grazie mille e buona serata.
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
per vedere quali sono state inviate
PHP:
<?php
$inv=1;//per vedere le inviate
$result =$db->query('SELECT * from  utenti_newsletter WHERE send=$inv ORDER BY email')or die($db->error);
while($row = $result->fetch_array()){
	echo $row['email']." inviata il ".date("d/m/Y H:i:s", $row['data_send'])."<br />";
}
?>
 
Discussioni simili
Autore Titolo Forum Risposte Data
B Modificare sorgente joomla senza perdita modifiche con update Joomla 2
K Problema form update PHP 2
M query update e delete PHP 0
N MAX() + ADD_DATE - per update su Mysql MySQL 0
felino Windows 7: errore 80072EFE su Windows Update Windows e Software 1
A pulsante di update campo mysql con javascript Javascript 2
elpirata Update dinamico informazioni scritte in una pagina php jQuery 11
MarcoGrazia ON DUPLICATE KEY ma in realtà non UPDATE mai PHP 17
R Errore UPDATE tabella mysql PHP 1
M Update con condizione SQL PHP 7
M Problema su update di 3 tabelle PHP 1
G Problema update di un database PHP 0
L update tabelle in php mysql [risolto] PHP 6
P update records PHP 2
B [MySQL] Problemino con UPDATE MySQL 10
M [PHP] Query UPDATE che non mi aggiorna campi seconda tabella PHP 3
felino [Windows 8.1] Windows Update non funziona correttamente Windows e Software 3
P [PHP] INSERT e UPDATE PHP 1
elpirata [MYSQL] Schedulare evento per update del campo data su tabella MySQL 0
D [ASP] Mysql insert e update Classic ASP 2
M UPDATE non aggiorna db se lo inserisco in un ciclo Database 1
Monital [PHP] query update e select insieme ma frazionando l'arrray PHP 12
D [PHP] Update non trasferisce condizione where PHP 1
L [PHP] Errore UPDATE su tabella DB PHP 22
giancadeejay [PHP] istruzione UPDATE SQL PHP 2
giancadeejay [PHP] UPDATE DATO , SE ESISTE IN DB .. PHP 14
C What is Latest update on SEO SEO e Posizionamento 1
K Non trovo l'errore! PDO MYSQL UPDATE PHP 2
marini91 Update record in mysqli PHP 1
R [MySQL] SQL UPDATE INNER JOIN MySQL 5
giancadeejay [PHP] Update tabella da file csv PHP 3
webmachine [PHP] SELECT, UPDATE VERIFICARNE IL RISULTATO PHP 2
cris8380 [PHP] Update in search. PHP 16
filippino Google Update fine Aprile 2016: Bruschi cambiamenti SERP SEO e Posizionamento 3
pup3770 Riprendere da db e UPDATE PHP 9
N Problema funzione UPDATE PHP 9
C Problema con update di un file PHP 6
L Upload immagine e update dati DB PHP 2
K Problema con update di un database in un ciclo Classic ASP 1
C Problema con Update di una tabella di un db PHP 3
L update MySQL 2
G Update file con javascript per controllo estensioni Javascript 5
P Problemi UPDATE PHP 1
MarcoGrazia [PDO][MySQL] L'update non avviene PHP 1
R Update PHP dalla 5.3.3 alla 5.3.4 PHP 0
S Insert into....on duplicate key update MySQL 2
1 Errore UPDATE, DELETE MS Access 16
Z Google Update del 7 Agosto 2014 SEO e Posizionamento 1
M Messaggio di errore su pulsante update PHP 0
L DML: utente con permessi di UPDATE con WHERE ha bisogno di privilegi di SELECT? PHP 1

Discussioni simili