Newsgroup: it.comp.www.php
Titolo: Spedizione a ruotazione

Questo script prelava dal DB contattilavoro una E-mail per la spedizione di
un messaggio a ruota a tutti gli indirizzi registrati nel DB.
Per effettuare la rotazione il primo ID vine rimosso e registrato
sull'ultimo ID+1 e poi tutti gli ID diventano ID-1,
Tutto funziona bene fino a a5 ID ma dopo non funziona piů questa istruzione:
$query = "UPDATE contattilavoro SET id=id-1 WHERE id>1";
NOn da nessun errore perň gli ID non vengono reimpostati a -1.
Allego lo script:
# lettura primo ID
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file
config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel
file
config.inc.php");
$query = "SELECT id,email,ricevuti,ordinati,data, tot FROM contattilavoro
WHERE id='1'";
$result = mysql_query($query, $db);
$row = mysql_fetch_array($result);
echo "<b>$row[email]</b><br><br>";
echo "<b>$row[id]</b><br><br>";
echo "<b>$row[ordinati]</b><br><br>";
echo "<b>$row[ricevuti]</b><br><br>";
$destinatario = $row[email];
$ordinati = $row[ordinati];
$ricevuti = $row[ricevuti];
$data = $row[data];
$tot = $row[tot];
$id = $row[tot]+1;
print "tot";
print $tot;
mysql_close($db);
# SCRUTTURE RECORD FINALE
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file
config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel
file
config.inc.php");
$query = "INSERT INTO contattilavoro (email , ricevuti , ordinati, data,
tot, id ) VALUES ('$destinatario', '$ricevuti', '$ordinati', '$data',
'$tot', '$id')";
print "id";
print $id;
$result = mysql_query($query, $db);
$row = mysql_fetch_array($result);
mysql_close($db);
# ELIMINAZIONE RECORD UNO
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file
config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel
file
config.inc.php");
$query = "DELETE FROM contattilavoro WHERE id=1";
$result = mysql_query($query, $db);
$row = mysql_fetch_array($result);
mysql_close($db);
# TRAFERIMENTO RECORD
$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
die ("Errore nella connessione. Verificare i parametri nel file
config.inc.php");
mysql_select_db($db_name, $db)
or die ("Errore nella selezione del database. Verificare i parametri nel
file
config.inc.php");
$query = "UPDATE contattilavoro SET id=id-1 WHERE id>1";
$result = mysql_query($query, $db);
$row = mysql_fetch_array($result);
mysql_close($db);

 NOn da nessun errore perr gli ID non vengono reimpostati a -1.
IMHO e' piuttosto chiaro. Per fare in modo che id venga impostato a -1
allora id deve essere a 0 (0 - 1 = -1) ma WHERE impone che id sia > 1
(e non >= 1).
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/3C
Vuoi supportarmi? 
http://url.repository.biz/go/3E
Do. Or do not. There is not try.

Ho provveduto alla modifica:
$query = "UPDATE contattilavoro SET id=id-1 WHERE id>=1";
ma è la stessa cosa.
Setec Astronomy <setec@_NO_NOSPAM_freemail.it> wrote in message
m683f.9322$Pe2.1...@twister2.libero.it...


sull'ultimo ID+1 e poi tutti gli ID diventano ID-1,
MI pare una complicazione inutile, aggiungi un campo al database di
tipo boolean, prima dell'invio imposti il campo a false per tutti i
record poi ogni record a coui spedisci l'amail lo metti a true.
In tal modo se per qualsiasi motivo l'invio di email si interrompesse
e dovessi rilanciare la procedura, spedirai l'email solo ai record
ancora impostati a false.
-- 
Stefano Aglietti - StallonIt on IRCnet - ICQ#: 2078431
Email: 
ste...@people.it
 - 
ste...@despammed.com
BlogPage: 
http://www.40annibuttati.it/
PGP keys available on keyservers  (cripted & signed PGP mail welcome)

 wrote in message
8n4qk19jt8drg9e6p...@4ax.com...


faccio a iniziare il conteggio da 1?
Quando sei arrivato all'ultimo record (quando la query di ricerca di
record a false non ti da risultato) riporti tutti i record a true e
ricominci l'invio di email.
Spero di essermi spiegato


 wrote in message
7t5qk11bhjdk27f3q...@4ax.com...



www.danilobottone.com
 (.it)
Solo due cose sono infinite, l'universo e la stupidità umana, e non
sono sicuro della prima. (Einstein)