Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.www.php > #20621 > unrolled thread

lettura e modifica dati​

Started by"infoannu" <22013invalid@mynewsgate.net>
First post2016-04-08 14:45 +0000
Last post2016-04-09 21:35 +0000
Articles 19 — 5 participants

Back to article view | Back to it.comp.www.php


Contents

   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

#20621 — lettura e modifica dati​

From"infoannu" <22013invalid@mynewsgate.net>
Date2016-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]


#20622 — Re: lettura e modifica dati?

FromAlex <tommaso5ita@yahoo.it>
Date2016-04-08 19:44 +0200
SubjectRe: 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]


#20623

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2016-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]


#20627

From"infoannu" <22013invalid@mynewsgate.net>
Date2016-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]


#20628 — Re: lettura e modifica dati

Fromfmigliori <fmigliori@gmail.com>
Date2016-04-09 07:43 -0700
SubjectRe: 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]


#20629 — Re: lettura e modifica dati

From"infoannu" <22013invalid@mynewsgate.net>
Date2016-04-09 15:40 +0000
SubjectRe: 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]


#20630 — Re: lettura e modifica dati

FromLeonardo Serni <lserni@gmail.com>
Date2016-04-09 20:33 +0200
SubjectRe: 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]


#20636 — Re: lettura e modifica dati

From"infoannu" <22013invalid@mynewsgate.net>
Date2016-04-10 12:29 +0000
SubjectRe: 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]


#20637 — Re: lettura e modifica dati

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2016-04-10 12:52 +0000
SubjectRe: 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]


#20642 — Re: lettura e modifica dati

From"infoannu" <22013invalid@mynewsgate.net>
Date2016-04-10 15:34 +0000
SubjectRe: 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]


#20643 — Re: lettura e modifica dati

Fromfmigliori <fmigliori@gmail.com>
Date2016-04-10 09:25 -0700
SubjectRe: 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]


#20644 — Re: lettura e modifica dati

From"infoannu" <22013invalid@mynewsgate.net>
Date2016-04-11 08:20 +0000
SubjectRe: 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]


#20645 — Re: lettura e modifica dati

Fromfmigliori <fmigliori@gmail.com>
Date2016-04-11 02:41 -0700
SubjectRe: 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]


#20649 — Re: lettura e modifica dati

From"infoannu" <22013invalid@mynewsgate.net>
Date2016-04-11 13:31 +0000
SubjectRe: 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]


#20651 — Re: lettura e modifica dati

Fromfmigliori <fmigliori@gmail.com>
Date2016-04-11 07:25 -0700
SubjectRe: 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]


#20652 — Re: lettura e modifica dati

From"infoannu" <22013invalid@mynewsgate.net>
Date2016-04-12 05:35 +0000
SubjectRe: 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]


#20659 — Re: lettura e modifica dati

Fromfmigliori <fmigliori@gmail.com>
Date2016-04-12 05:16 -0700
SubjectRe: 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]


#20647 — Re: lettura e modifica dati

FromAlex <tommaso5ita@yahoo.it>
Date2016-04-11 13:20 +0200
SubjectRe: 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]


#20631

FromAlessandro Pellizzari <shuriken@amiran.it>
Date2016-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