Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.www.php > #20621 > unrolled thread
| Started by | "infoannu" <22013invalid@mynewsgate.net> |
|---|---|
| First post | 2016-04-08 14:45 +0000 |
| Last post | 2016-04-09 21:35 +0000 |
| Articles | 19 — 5 participants |
Back to article view | Back to it.comp.www.php
lettura e modifica dati "infoannu" <22013invalid@mynewsgate.net> - 2016-04-08 14:45 +0000
Re: lettura e modifica dati? Alex <tommaso5ita@yahoo.it> - 2016-04-08 19:44 +0200
Re: lettura e modifica dati Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-09 06:52 +0000
Re: lettura e modifica dati "infoannu" <22013invalid@mynewsgate.net> - 2016-04-09 13:55 +0000
Re: lettura e modifica dati fmigliori <fmigliori@gmail.com> - 2016-04-09 07:43 -0700
Re: lettura e modifica dati "infoannu" <22013invalid@mynewsgate.net> - 2016-04-09 15:40 +0000
Re: lettura e modifica dati Leonardo Serni <lserni@gmail.com> - 2016-04-09 20:33 +0200
Re: lettura e modifica dati "infoannu" <22013invalid@mynewsgate.net> - 2016-04-10 12:29 +0000
Re: lettura e modifica dati Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-10 12:52 +0000
Re: lettura e modifica dati "infoannu" <22013invalid@mynewsgate.net> - 2016-04-10 15:34 +0000
Re: lettura e modifica dati fmigliori <fmigliori@gmail.com> - 2016-04-10 09:25 -0700
Re: lettura e modifica dati "infoannu" <22013invalid@mynewsgate.net> - 2016-04-11 08:20 +0000
Re: lettura e modifica dati fmigliori <fmigliori@gmail.com> - 2016-04-11 02:41 -0700
Re: lettura e modifica dati "infoannu" <22013invalid@mynewsgate.net> - 2016-04-11 13:31 +0000
Re: lettura e modifica dati fmigliori <fmigliori@gmail.com> - 2016-04-11 07:25 -0700
Re: lettura e modifica dati "infoannu" <22013invalid@mynewsgate.net> - 2016-04-12 05:35 +0000
Re: lettura e modifica dati fmigliori <fmigliori@gmail.com> - 2016-04-12 05:16 -0700
Re: lettura e modifica dati Alex <tommaso5ita@yahoo.it> - 2016-04-11 13:20 +0200
Re: lettura e modifica dati Alessandro Pellizzari <shuriken@amiran.it> - 2016-04-09 21:35 +0000
| From | "infoannu" <22013invalid@mynewsgate.net> |
|---|---|
| Date | 2016-04-08 14:45 +0000 |
| Subject | lettura e modifica dati |
| Message-ID | <2016040814454822013@mynewsgate.net> |
lo script sottoriportato provvede a selezionare da un database dei
record che soddisfano una certa condizione e successivamente sì
provvede tramite la funzione update all'aggiornamento del Campo in base
al valore ID.
solo che ci dev'essere qualcosa che non va in quanto mi restituisce il
seguente errore:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL
result resource in /prova.php
allego lo script
<?
include("config.inc.php");
$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,testoannuncio,titolo,data,email,provincia,bollettino,categoria,ref,in
vio FROM servizicitta WHERE bollettino = 'ATTIVATO' AND ref>1 AND
invio=9";
$result = mysql_query($query, $db);
while ($row = mysql_fetch_array($result))
{
$testoannuncio = $row[testoannuncio];
$id = $row[id];
$titolo = $row[titolo];
$zona = $row[zona];
# AGGIORNAMENTO RECORD INVIO
###################
$query = "UPDATE servizicitta SET invio = 99 WHERE id='$row[id]'";
print $row[id];
$result = mysql_query($query, $db);
}
mysql_close($db);
?>
[toc] | [next] | [standalone]
| From | Alex <tommaso5ita@yahoo.it> |
|---|---|
| Date | 2016-04-08 19:44 +0200 |
| Subject | Re: lettura e modifica dati? |
| Message-ID | <ne8qmf$2ndh$1@adenine.netfront.net> |
| In reply to | #20621 |
infoannu ci ha detto : > solo che ci dev'essere qualcosa che non va in quanto mi restituisce il > seguente errore: > > Warning: mysql_fetch_array(): supplied argument is not a valid MySQL > result resource in /prova.php > > allego lo script In attesa dei superesperti di database bisogna che ti accontenti di quel che passa il convento ... *not a valid resource* significa che non riesce ad eseguire la query di selezione. $result non è ok. L'errore dipende da errori di sintassi nella query oppure una query troppo complessa. Per gli errori di sintassi la cosa più facile è guardare le query che fa il phpmyadmin. Quando ne fai una mette sempre anche la stringa in alto e sono perfette. Per la query troppo complessa penso che sarebbe meglio non impostare in questo modo le condizioni WHERE AND e AND ma usare delle subquery. Un esempio di subquery che funziona è questo: $sql = "SELECT * FROM (SELECT * FROM `table` WHERE `username`= '$servUser') AS sub WHERE sub.`campo` = 0 ORDER BY `campo1` DESC"; Bye -- Alex --- news://freenews.netfront.net/ - complaints: news@netfront.net ---
[toc] | [prev] | [next] | [standalone]
| From | Alessandro Pellizzari <shuriken@amiran.it> |
|---|---|
| Date | 2016-04-09 06:52 +0000 |
| Message-ID | <dmrn5fFrmd1U1@mid.individual.net> |
| In reply to | #20621 |
Il Fri, 08 Apr 2016 14:45:48 +0000, infoannu ha scritto:
> solo che ci dev'essere qualcosa che non va in quanto mi restituisce il
> seguente errore:
>
> Warning: mysql_fetch_array(): supplied argument is not a valid MySQL
> result resource in /prova.php
http://php.net/manual/en/function.mysql-query.php
Per prima cosa nota il warning:
This extension was deprecated in PHP 5.5.0, and it was removed in PHP
7.0.0. Instead, the MySQLi or PDO_MySQL
PHP 5.5 è del 2013, quindi è deprecata da quasi 3 anni.
Poi guarda in return value. Può tornare false se la query non ha
funzionato:
> $result = mysql_query($query, $db);
if (false === $result) {
die(mysql_error());
}
> $testoannuncio = $row[testoannuncio];
Questa sintassi è deprecata. Probabilmente avrai i log pieni di warning.
Devi usare una stringa: $row['testoannuncio']
> $query = "UPDATE servizicitta SET invio = 99 WHERE id='$row[id]'";
Anche qui. Dovresti usare ...id='".$row['id]'."'";
Un paio di consigli:
- passa a PDO.
- se stai usando una versione di PHP inferiore alla 5.6, aggiorna almeno
alla 5.6
- controlla la data dei tutorial/corsi/pezzi di codice che trovi su
Internet. Se sono del 2015 va bene. 2014, decente. 2013 o precedenti,
chiudi la pagina e non tornarci più. Se non hanno la data, dai per
scontato che siano del 1995.
PHP, e tutto l'ecosistema intorno, è cambiato tantissimo negli ultimi 3-4
anni.
Bye.
[toc] | [prev] | [next] | [standalone]
| From | "infoannu" <22013invalid@mynewsgate.net> |
|---|---|
| Date | 2016-04-09 13:55 +0000 |
| Message-ID | <2016040913555122013@mynewsgate.net> |
| In reply to | #20623 |
> > $query = "UPDATE servizicitta SET invio = 99 WHERE id='$row[id]'"; > > Anche qui. Dovresti usare ...id='".$row['id]'."'"; > ho fatto le modifiche da te indicate ma adesso su questa linea: $query = "UPDATE servizicitta SET invio = 9 WHERE id='".$row['id]'."'"; mi dà il seguente errore Parse error: syntax error, unexpected ';', expecting ']' mi potresti fornire lo script modificato secondo le tue indicazioni così lo provo e ti faccio sapere
[toc] | [prev] | [next] | [standalone]
| From | fmigliori <fmigliori@gmail.com> |
|---|---|
| Date | 2016-04-09 07:43 -0700 |
| Subject | Re: lettura e modifica dati |
| Message-ID | <db0abdc6-8293-4ebf-812a-30c424e7d296@googlegroups.com> |
| In reply to | #20627 |
Il giorno sabato 9 aprile 2016 15:55:52 UTC+2, infoannu ha scritto: > > > $query = "UPDATE servizicitta SET invio = 99 WHERE id='$row[id]'"; > > > > Anche qui. Dovresti usare ...id='".$row['id]'."'"; > > > > ho fatto le modifiche da te indicate ma adesso su questa linea: > > $query = "UPDATE servizicitta SET invio = 9 WHERE id='".$row['id]'."'"; > > mi dà il seguente errore > > Parse error: syntax error, unexpected ';', expecting ']' L'apice di chiusura della stringa id si trova dopo ]: $row['id]' > mi potresti fornire lo script modificato secondo le tue indicazioni così >lo provo e ti faccio sapere Una delle difficoltà che si trova quando si studia un nuovo linguaggio di programmazione è capire i messaggi d'errore, pare dicano altro. Ad esempio che c'entra il punto e virgola? C'entra nel modo di fare parsing di php e il messaggio di errore è effettivamente coerente con l'errore. Se vuoi davvero imparare a programmare la correzione degli errori la devi fare da te. Anche se frequenti i migliori corsi, compri i libri degli illuminati, assumi Pelizzari per un anno consecutivo, per imparare a programmare il debug lo devi fare te. Dopo il consiglio del saggio, i consigli pratici: usa un editor con la colorazione della sintassi; se proprio non riesci a capire l'errore (male), cancella la riga e riscrivila da capo; se passi più di un'ora dietro un detestabile messaggio d'errore, allora ci sono i millemila forum e gli NG ricolmi di gente a cui garbano i casi strani; E il consiglio ultimo ma non ultimo: se stai sviluppando un programma di spamming verrai brutalmente ucciso.
[toc] | [prev] | [next] | [standalone]
| From | "infoannu" <22013invalid@mynewsgate.net> |
|---|---|
| Date | 2016-04-09 15:40 +0000 |
| Subject | Re: lettura e modifica dati |
| Message-ID | <2016040915404522013@mynewsgate.net> |
| In reply to | #20628 |
fmigliori <fmigliori@gmail.com> ha scritto: > Il giorno sabato 9 aprile 2016 15:55:52 UTC+2, infoannu ha scritto: > > > > $query = "UPDATE servizicitta SET invio = 99 WHERE id='$row[id]'"; > > > > > > Anche qui. Dovresti usare ...id='".$row['id]'."'"; > > > > > > > ho fatto le modifiche da te indicate ma adesso su questa linea: > > > > $query = "UPDATE servizicitta SET invio = 9 WHERE id='".$row['id]'."'"; > > > > mi dà il seguente errore > > > > Parse error: syntax error, unexpected ';', expecting ']' > > L'apice di chiusura della stringa id si trova dopo ]: $row['id]' > scusami se insisto ma l'apice di chiusura di questa istruzione e come lo hai detto tu ma mi dà sempre errore mi puoi almeno postare solo questa semplice Liga corretta: $query = "UPDATE servizicitta SET invio = 9 WHERE id='".$row['id]'."'"; non faccio assolutamente spam
[toc] | [prev] | [next] | [standalone]
| From | Leonardo Serni <lserni@gmail.com> |
|---|---|
| Date | 2016-04-09 20:33 +0200 |
| Subject | Re: lettura e modifica dati |
| Message-ID | <9kiigb9vs52unrh8fgf8kt8slmihimvghm@L.Serni> |
| In reply to | #20629 |
On Sat, 09 Apr 2016 15:40:45 GMT, "infoannu" <22013invalid@mynewsgate.net> wrote:
>fmigliori <fmigliori@gmail.com> ha scritto:
>> > $query = "UPDATE servizicitta SET invio = 9 WHERE id='".$row['id]'."'";
>> > mi dà il seguente errore
>> > Parse error: syntax error, unexpected ';', expecting ']'
>> L'apice di chiusura della stringa id si trova dopo ]: $row['id]'
> scusami se insisto ma l'apice di chiusura di questa istruzione e come lo hai
> detto tu
No. L'indice di $row deve essere 'id', non 'id con un apice solo.
> ma mi dà sempre errore mi puoi almeno postare solo questa semplice
> riga corretta:?
>$query = "UPDATE servizicitta SET invio = 9 WHERE id='".$row['id]'."'";
$query = "UPDATE servizicitta SET invio = 9 WHERE id='".$row['id']."'";
-----------------------------------------------------------------^^
Leonardo
--
A terrible beauty is born.
- W. B. Yeats, Easter 1916
[toc] | [prev] | [next] | [standalone]
| From | "infoannu" <22013invalid@mynewsgate.net> |
|---|---|
| Date | 2016-04-10 12:29 +0000 |
| Subject | Re: lettura e modifica dati |
| Message-ID | <2016041012293622013@mynewsgate.net> |
| In reply to | #20630 |
> No. L'indice di $row deve essere 'id', non 'id con un apice solo.
>
> > ma mi dà sempre errore mi puoi almeno postare solo questa semplice
> > riga corretta:?
>
> >$query = "UPDATE servizicitta SET invio = 9 WHERE id='".$row['id]'."'";
> $query = "UPDATE servizicitta SET invio = 9 WHERE id='".$row['id']."'";
> -----------------------------------------------------------------^^
>
>
con le modifiche da voi suggerite vi allego lo script modificato adesso mi dà
il seguente errore
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result
resource on line 13
allego codice
<?
include("area_riservata.php");
include("config.inc.php");
$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,testoannuncio,titolo,data,email,provincia,bollettino,categoria,ref,invio
FROM servizicitta WHERE bollettino = 'ATTIVATO' AND ref>1 AND invio=9 ";
if (false === $result) {
die(mysql_error());
}
while ($row = mysql_fetch_array($result))
{
# AGGIORNAMENTO RECORD INVIO
################################################################################
##############
$query = "UPDATE servizicitta SET invio = 99 WHERE id='".$row['id']."'";
if (false === $result) {
die(mysql_error());
}
}
mysql_close($db);
?>
[toc] | [prev] | [next] | [standalone]
| From | Alessandro Pellizzari <shuriken@amiran.it> |
|---|---|
| Date | 2016-04-10 12:52 +0000 |
| Subject | Re: lettura e modifica dati |
| Message-ID | <dmv0jgFjrt4U2@mid.individual.net> |
| In reply to | #20636 |
Il Sun, 10 Apr 2016 12:29:36 +0000, infoannu ha scritto: > con le modifiche da voi suggerite vi allego lo script modificato adesso > mi dà > il seguente errore > > Warning: mysql_fetch_array(): supplied argument is not a valid MySQL > result resource on line 13 Hai aggiunto il controllo di errore ma hai tolto l'esecuzione delle query... :) Bye.
[toc] | [prev] | [next] | [standalone]
| From | "infoannu" <22013invalid@mynewsgate.net> |
|---|---|
| Date | 2016-04-10 15:34 +0000 |
| Subject | Re: lettura e modifica dati |
| Message-ID | <2016041015340922013@mynewsgate.net> |
| In reply to | #20637 |
Alessandro Pellizzari <shuriken@amiran.it> ha scritto: > Il Sun, 10 Apr 2016 12:29:36 +0000, infoannu ha scritto: > > > con le modifiche da voi suggerite vi allego lo script modificato adesso > > mi dà > > il seguente errore > > > > Warning: mysql_fetch_array(): supplied argument is not a valid MySQL > > result resource on line 13 > > Hai aggiunto il controllo di errore ma hai tolto l'esecuzione delle > query... :) > > Bye. scusa ma non capisco io non l'ho tolto l'esecuzione delle query ho solo seguito i vostri consigli ed ho modificato lo script
[toc] | [prev] | [next] | [standalone]
| From | fmigliori <fmigliori@gmail.com> |
|---|---|
| Date | 2016-04-10 09:25 -0700 |
| Subject | Re: lettura e modifica dati |
| Message-ID | <c25023b9-26af-42b7-ac95-a2f40e544c09@googlegroups.com> |
| In reply to | #20642 |
Il giorno domenica 10 aprile 2016 17:34:10 UTC+2, infoannu ha scritto:
> Alessandro Pellizzari <shuriken@amiran.it> ha scritto:
>
> > Il Sun, 10 Apr 2016 12:29:36 +0000, infoannu ha scritto:
> >
> > > con le modifiche da voi suggerite vi allego lo script modificato adesso
> > > mi dà
> > > il seguente errore
> > >
> > > Warning: mysql_fetch_array(): supplied argument is not a valid MySQL
> > > result resource on line 13
> >
> > Hai aggiunto il controllo di errore ma hai tolto l'esecuzione delle
> > query... :)
> >
> > Bye.
>
> scusa ma non capisco io non l'ho tolto l'esecuzione delle query ho solo
> seguito i vostri consigli ed ho modificato lo script
Nel tuo primo post si trova la riga
$query = "SELECT ...";
$result = mysql_query($query, $db); //<< intendo questa riga
while ($row = mysql_fetch_array($result))
dove $result veniva valorizzata con la risorsa dei dati ottenuti dalla query, quando hai modificato lo script l'hai cancellata
$query = "SELECT ....";
if (false === $result) {
die(mysql_error());
}
dopo aver valorizzato la variabile $query con la stringa contenente la query da passare all'rdbms non esegui la query (mysql_query) ma verifichi che $result non sia false, ma $result non è nemmeno dichiarata.
Lo script deve diventare
$query = "SELECT ...."; //
$result = mysql_query($query, $db);
if (false === $result) {
die(mysql_error());
}
Buon lavoro
[toc] | [prev] | [next] | [standalone]
| From | "infoannu" <22013invalid@mynewsgate.net> |
|---|---|
| Date | 2016-04-11 08:20 +0000 |
| Subject | Re: lettura e modifica dati |
| Message-ID | <2016041108201322013@mynewsgate.net> |
| In reply to | #20643 |
> Lo script deve diventare
>
> $query = "SELECT ...."; //
> $result = mysql_query($query, $db);
> if (false === $result) {
> die(mysql_error());
> }
>
> Buon lavoro
ho fatto le modifiche da te comunicate e adesso mi da questo errore
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result
resource in //prova2.php on line 14
codice:
<?
include("area_riservata.php");
include("config.inc.php");
$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,testoannuncio,titolo,data,email,provincia,bollettino,categoria,ref,invio
FROM servizicitta WHERE bollettino = 'ATTIVATO' AND ref>1 AND invio=9 ";
$result = mysql_query($query, $db);
if (false === $result) {
die(mysql_error());
}
while ($row = mysql_fetch_array($result))
{
# AGGIORNAMENTO RECORD INVIO
################################################################################
##############
$query = "UPDATE servizicitta SET invio = 99 WHERE id='".$row['id']."'";
$result = mysql_query($query, $db);
if (false === $result) {
die(mysql_error());
}
}
mysql_close($db);
?>
[toc] | [prev] | [next] | [standalone]
| From | fmigliori <fmigliori@gmail.com> |
|---|---|
| Date | 2016-04-11 02:41 -0700 |
| Subject | Re: lettura e modifica dati |
| Message-ID | <92b4840a-403e-4ac4-919b-0a3717b7ebe4@googlegroups.com> |
| In reply to | #20644 |
Il giorno lunedì 11 aprile 2016 10:20:15 UTC+2, infoannu ha scritto:
> > Lo script deve diventare
> >
> > $query = "SELECT ...."; //
> > $result = mysql_query($query, $db);
> > if (false === $result) {
> > die(mysql_error());
> > }
> >
> > Buon lavoro
>
>
>
> ho fatto le modifiche da te comunicate e adesso mi da questo errore
>
> Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result
> resource in //prova2.php on line 14
è un errore logico, scommetto che ti modifica solo la prima riga.
Devi imparare l'sql altrimenti lo usi in maniera impropria. Per far funzionare il tuo programma dovresti usare due connessioni all'rdbms e causerebbe un numero imprecisato di query al posto di una ben fatta.
La query giusta è
UPDATE servizicitta SET invio = 99 WHERE bollettino = 'ATTIVATO' AND ref>1 AND invio=9
[toc] | [prev] | [next] | [standalone]
| From | "infoannu" <22013invalid@mynewsgate.net> |
|---|---|
| Date | 2016-04-11 13:31 +0000 |
| Subject | Re: lettura e modifica dati |
| Message-ID | <2016041113312722013@mynewsgate.net> |
| In reply to | #20645 |
fmigliori <fmigliori@gmail.com> ha scritto:
> Il giorno lunedì 11 aprile 2016 10:20:15 UTC+2, infoannu ha scritto:
> > > Lo script deve diventare
> > >
> > > $query = "SELECT ...."; //
> > > $result = mysql_query($query, $db);
> > > if (false === $result) {
> > > die(mysql_error());
> > > }
> > >
> > > Buon lavoro
> >
> >
> >
> > ho fatto le modifiche da te comunicate e adesso mi da questo errore
> >
> > Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result
> > resource in //prova2.php on line 14
>
> è un errore logico, scommetto che ti modifica solo la prima riga.
>
> Devi imparare l'sql altrimenti lo usi in maniera impropria. Per far
funzionare il tuo programma dovresti usare due connessioni all'rdbms e
causerebbe un numero imprecisato di query al posto di una ben fatta.
>
> La query giusta è
>
> UPDATE servizicitta SET invio = 99 WHERE bollettino = 'ATTIVATO' AND ref>1
AND invio=9
>
>
come dici tu vengono aggiornate tutte le righe che soddisfano quella
condizione io invece voglio che viene modificata solo una riga per volta in
base al Campo ID
mi spiego meglio:
la prima query legge una riga che soddisfa quelle condizioni
viene mandata un email al l'indirizzo di posta elettronica registrato su
quella riga
dopo viene aggiornato il campo invio solo della riga a cui è stata mandata
l'email
[toc] | [prev] | [next] | [standalone]
| From | fmigliori <fmigliori@gmail.com> |
|---|---|
| Date | 2016-04-11 07:25 -0700 |
| Subject | Re: lettura e modifica dati |
| Message-ID | <d53828a6-24a3-43b4-8e6d-d74ab236ab00@googlegroups.com> |
| In reply to | #20649 |
Il giorno lunedì 11 aprile 2016 15:31:28 UTC+2, infoannu ha scritto:
> fmigliori ha scritto:
>
> > Il giorno lunedì 11 aprile 2016 10:20:15 UTC+2, infoannu ha scritto:
> > > > Lo script deve diventare
> > > >
> > > > $query = "SELECT ...."; //
> > > > $result = mysql_query($query, $db);
> > > > if (false === $result) {
> > > > die(mysql_error());
> > > > }
> > > >
> > > > Buon lavoro
> > >
> > >
> > >
> > > ho fatto le modifiche da te comunicate e adesso mi da questo errore
> > >
> > > Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result
> > > resource in //prova2.php on line 14
> >
> > è un errore logico, scommetto che ti modifica solo la prima riga.
> >
> > Devi imparare l'sql altrimenti lo usi in maniera impropria. Per far
> funzionare il tuo programma dovresti usare due connessioni all'rdbms e
> causerebbe un numero imprecisato di query al posto di una ben fatta.
> >
> > La query giusta è
> >
> > UPDATE servizicitta SET invio = 99 WHERE bollettino = 'ATTIVATO' AND ref>1
> AND invio=9
> >
> >
>
> come dici tu vengono aggiornate tutte le righe che soddisfano quella
> condizione io invece voglio che viene modificata solo una riga per volta in
> base al Campo ID
>
> mi spiego meglio:
>
> la prima query legge una riga che soddisfa quelle condizioni
>
> viene mandata un email al l'indirizzo di posta elettronica registrato su
> quella riga
>
> dopo viene aggiornato il campo invio solo della riga a cui è stata mandata
> l'email
Ho capito, nello script è omessa la parte d'invio email.
...
$query = "UPDATE servizicitta SET invio = 99 WHERE id='".$row['id']."'";
$result2 = mysql_query($query, $db); // <<< Rinomina questa variabile
if (false === $result2) {
...
Per abitudine preferisco isolare le due query con due connessioni, se possibile con transazioni, ma anche così ti dovrebbe funzionare. Questo script non credo funzioni correttamente in un regime di concorrenza, potresti avere email doppie e triple.
[toc] | [prev] | [next] | [standalone]
| From | "infoannu" <22013invalid@mynewsgate.net> |
|---|---|
| Date | 2016-04-12 05:35 +0000 |
| Subject | Re: lettura e modifica dati |
| Message-ID | <2016041205350222013@mynewsgate.net> |
| In reply to | #20651 |
> Ho capito, nello script è omessa la parte d'invio email.
>
> ....
> $query = "UPDATE servizicitta SET invio = 99 WHERE id='".$row
['id']."'";
> $result2 = mysql_query($query, $db); // <<< Rinomina questa variabile
> if (false === $result2) {
> ....
>
>
> Per abitudine preferisco isolare le due query con due connessioni, se
possibile con transazioni, ma anche così ti dovrebbe funzionare. Questo
script
non credo funzioni correttamente in un regime di concorrenza, potresti
avere
email doppie e triple.
ottimo adesso lo script funziona correttamente
cosa intendi per regime di concorrenza questo script lo uso solo io in
modalità protetta per quale motivo dovrei avere le email doppie o triple
[toc] | [prev] | [next] | [standalone]
| From | fmigliori <fmigliori@gmail.com> |
|---|---|
| Date | 2016-04-12 05:16 -0700 |
| Subject | Re: lettura e modifica dati |
| Message-ID | <6e2cdbfd-9856-431e-86f4-9897d6e21ae6@googlegroups.com> |
| In reply to | #20652 |
Il giorno martedì 12 aprile 2016 07:35:04 UTC+2, infoannu ha scritto:
> > Ho capito, nello script è omessa la parte d'invio email.
> >
> > ....
> > $query = "UPDATE servizicitta SET invio = 99 WHERE id='".$row
> ['id']."'";
> > $result2 = mysql_query($query, $db); // <<< Rinomina questa variabile
> > if (false === $result2) {
> > ....
> >
> >
> > Per abitudine preferisco isolare le due query con due connessioni, se
> possibile con transazioni, ma anche così ti dovrebbe funzionare. Questo
> script
> non credo funzioni correttamente in un regime di concorrenza, potresti
> avere
> email doppie e triple.
>
> ottimo adesso lo script funziona correttamente
>
> cosa intendi per regime di concorrenza questo script lo uso solo io in
> modalità protetta per quale motivo dovrei avere le email doppie o triple
>
Perché se lo esegui due volte i destinatari non ancora processati dalla prima esecuzione attiva del programma, riceveranno due email.
Se poi mi dici che te non sbagli mai e sarai solo te ad accedere allo script, il problema non sussiste perché non ci sarà concorrenza tra i processi.
[toc] | [prev] | [next] | [standalone]
| From | Alex <tommaso5ita@yahoo.it> |
|---|---|
| Date | 2016-04-11 13:20 +0200 |
| Subject | Re: lettura e modifica dati |
| Message-ID | <neg1aa$2qt7$1@adenine.netfront.net> |
| In reply to | #20644 |
Dopo dura riflessione, infoannu ha scritto : > ho fatto le modifiche da te comunicate e adesso mi da questo errore > > Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result > resource in //prova2.php on line 14 > > > codice: > > <? > $query = "SELECT > id,testoannuncio,titolo,data,email,provincia,bollettino,categoria,ref,invio > FROM servizicitta WHERE bollettino = 'ATTIVATO' AND ref>1 AND invio=9 "; > $result = mysql_query($query, $db); E' questa la query che continua a non essere eseguita. Forse per sintassi ma spezzo una lancia in favore dell' uso di subquery. Però non penso che possa essere fatta qui: a acchio ti occorre anche nidificarla e delle prove sono necessarie. Bye -- Alex --- news://freenews.netfront.net/ - complaints: news@netfront.net ---
[toc] | [prev] | [next] | [standalone]
| From | Alessandro Pellizzari <shuriken@amiran.it> |
|---|---|
| Date | 2016-04-09 21:35 +0000 |
| Message-ID | <dmtasqFa7ohU2@mid.individual.net> |
| In reply to | #20627 |
Il Sat, 09 Apr 2016 13:55:51 +0000, infoannu ha scritto: > $query = "UPDATE servizicitta SET invio = 9 WHERE id='".$row['id]'."'"; > > mi dà il seguente errore > > Parse error: syntax error, unexpected ';', expecting ']' Mea culpa. Gli editor che ti chiudono automaticamente le parentesi mi stanno rovinando la calligrafia. :D Come dicono giustamente fmigliori e Leonardo, è $row['id'] con apici e parentesi chiuse nell'ordine corretto. Bye.
[toc] | [prev] | [standalone]
Back to top | Article view | it.comp.www.php
csiph-web