Il linguaggio di programmazione PHP
 

passaggio di un array in un link

Enrico Maria Chellini 29 Dic 2016 16:46
ho un $arry contente dei valori risultati da una query

questi valori vanno passati in un link.php?array=$array

ma il risultato che ho è
Array to string conversion in device.php on line 100

come faccio a far passare i valori?

altrimenti devo dovo passare solo l'id e rifare la query. due volte

Enrico
Alessandro Pellizzari 29 Dic 2016 17:16
Il Thu, 29 Dec 2016 16:46:13 +0100, Enrico Maria Chellini ha scritto:

> ho un $arry contente dei valori risultati da una query
>
> questi valori vanno passati in un link.php?array=$array
>
> ma il risultato che ho è Array to string conversion in device.php on
> line 100
>
> come faccio a far passare i valori?

Intanto devi decidere come li vuoi nell'URL e vedere come li hai
nell'array, poi devi trovare il modo per encodarli.

Fai un esempio di cosa hai nell'array e di cosa vorresti vedere nell'URL.

Bye.
Leonardo Serni 29 Dic 2016 19:30
On Thu, 29 Dec 2016 16:46:13 +0100, Enrico Maria Chellini <bitit@bitit.it>
wrote:

>ho un $arry contente dei valori risultati da una query

>questi valori vanno passati in un link.php?array=$array

>ma il risultato che ho è
>Array to string conversion in device.php on line 100

array[chiave1]=valore1&array[chiave2]=valore2 ...

Se le chiavi sono numeriche crescenti contigue zero-based (0 1 2 ...), le
puoi omettere.

Leonardo
--

A terrible beauty is born.
- W. B. Yeats, Easter 1916
Enrico Maria Chellini 29 Dic 2016 19:46
Leonardo Serni wrote:

> On Thu, 29 Dec 2016 16:46:13 +0100, Enrico Maria Chellini <bitit@bitit.it>
> wrote:
>
>>ho un $arry contente dei valori risultati da una query
>
>>questi valori vanno passati in un link.php?array=$array
>
>>ma il risultato che ho è
>>Array to string conversion in device.php on line 100
>
> array[chiave1]=valore1&array[chiave2]=valore2 ...
>
> Se le chiavi sono numeriche crescenti contigue zero-based (0 1 2 ...), le
> puoi omettere.
>
> Leonardo

troppo lungo e complicato , per altro il numero di componeti dell'arry
varia.

soluzione che vorrei evitare.

preferisco mandare l'id e raddoppiare la query

Enrico
Enrico Maria Chellini 29 Dic 2016 19:56
Alessandro Pellizzari wrote:

> Il Thu, 29 Dec 2016 16:46:13 +0100, Enrico Maria Chellini ha scritto:
>
>> ho un $arry contente dei valori risultati da una query
>>
>> questi valori vanno passati in un link.php?array=$array
>>
>> ma il risultato che ho è Array to string conversion in device.php on
>> line 100
>>
>> come faccio a far passare i valori?
>
> Intanto devi decidere come li vuoi nell'URL e vedere come li hai
> nell'array, poi devi trovare il modo per encodarli.
>
> Fai un esempio di cosa hai nell'array e di cosa vorresti vedere nell'URL.
>
> Bye.

$device="SELECT * FROM ((sysSetDevice INNER JOIN sysambient ON
sysSetDevice.idsysAmbient=sysambient.idsysAmbient) INNER JOIN system ON
sysambient.idSystem=system.idSystem) INNER JOIN sysdevice ON
sysambient.idDeviceType=sysdevice.idDeviceType WHERE
sysSetDevice.idsysAmbient='$ida' ";

foreach($rvdb->query($device) as $rdevice)
{

$idd=$rdevice['idsysAmbient'];

$nameLogTab=$rdevice['log_tab'];

$deviceSetName_local=$rdevice['deviceSetName_local'];

$logFieldName=$rdevice['logFieldName'];


$logFieldType=$rdevice['logFieldType'];
$set=$rdevice['set'];

$logTab=$rdevice['log_tab'];

//array
$fieldArry [$logFieldName] =$logFieldType;

//risultato array:

Array ( [RESIDUAL_OXYGEN] => 2 [AIR_PRESSURE] => 2 [VACUOM] => 2
[NITROGEN_PRESSURE] => 2 [WORK_TIME] => 2 [RESIDUAL_OXYGEN_AVERAGE] => 3
[AIR_TEMPERATURE] => 3 [CABINET_TEMPERATURE] => 3 [AL21] => 0 [AL22] => 0
[AL2] => 0 [AL3] => 0 [AL1] => 0 [AL8] => 0 [AL4] => 0 [AL20] => 0
[AL20_STOP] => 0 [AL20_ALLERT] => 0 [AL7] => 0 [AL11] => 0 [AL25] => 0
[AL26] => 0 [STATE_0] => 0 [STATE_8] => 0 [ADSORPTION] => 3 [FLOW] => 3
[AVERAGE_FLOW] => 3 [TIMESTAMP] => 2 )

// link di trasmissione:

getDeviceLog.php?ida=".$idd."&tab=".$nameLogTab."&fieldArry=".$fieldArry;

//di la mi prendo l'arry per selezionare nella query i campi che miservono.

$cat="SELECT * FROM $tab ORDER BY idLog DESC ";

foreach($rvdb->query($cat) as $rcat){


foreach ($fieldArry as $field => $type)
echo $field . ' = ' . $type . '<br />$'.$field=$rcat[$field];


troppa fantasia? :D
Alessandro Pellizzari 30 Dic 2016 09:23
Il Thu, 29 Dec 2016 19:56:30 +0100, Enrico Maria Chellini ha scritto:

> //risultato array:
>
> Array ( [RESIDUAL_OXYGEN] => 2 [AIR_PRESSURE] => 2 [VACUOM] => 2
> [NITROGEN_PRESSURE] => 2 [WORK_TIME] => 2 [RESIDUAL_OXYGEN_AVERAGE] => 3
> [AIR_TEMPERATURE] => 3 [CABINET_TEMPERATURE] => 3 [AL21] => 0 [AL22] =>
> 0 [AL2] => 0 [AL3] => 0 [AL1] => 0 [AL8] => 0 [AL4] => 0 [AL20] => 0
> [AL20_STOP] => 0 [AL20_ALLERT] => 0 [AL7] => 0 [AL11] => 0 [AL25] => 0
> [AL26] => 0 [STATE_0] => 0 [STATE_8] => 0 [ADSORPTION] => 3 [FLOW] => 3
> [AVERAGE_FLOW] => 3 [TIMESTAMP] => 2 )

> ...

> foreach ($fieldArry as $field => $type)
> echo $field . ' = ' . $type . '<br />$'.$field=$rcat[$field];


Tenendo conto dei limiti di alcuni browser/proxy/webserver (512 caratteri
il più stretto che mi è capitato):

$link = 'getDeviceLog.php?ida='.$idd.'&tab='.$nameLogTab.'&'.
http_build_query(['fieldArry' => $fieldArry]);

Dovrebbe funzionare, e alla seconda pagina ti trovi $_GET['fieldArry']
che contiene il tuo array di partenza.

Ma forse è meglio se trovi un metodo migliore per organizzare tutta
l'applicazione.

Bye.
Enrico Maria Chellini 30 Dic 2016 09:55
>
> Tenendo conto dei limiti di alcuni browser/proxy/webserver (512 caratteri
> il più stretto che mi è capitato):

direi che questo è un fattore da tener conto.

> $link = 'getDeviceLog.php?ida='.$idd.'&tab='.$nameLogTab.'&'.
> http_build_query(['fieldArry' => $fieldArry]);
> Dovrebbe funzionare, e alla seconda pagina ti trovi $_GET['fieldArry']
> che contiene il tuo array di partenza.

ci provo


> Ma forse è meglio se trovi un metodo migliore per organizzare tutta
> l'applicazione.

si, sono in fase di progettazione e credo che tenuto prente quanto sopra mi
hai detto, è il caso di pensare a un altra strada.

in pratica ho una tabella "log" che non so, volta, volta come è formata, in
cui ci son dei dati che vanno letti in vari modi, con nominazioni a
terminale, scritte su un altra tabella "conf".


Comunque grazie
Enrico
Enrico Maria Chellini 30 Dic 2016 10:13
>
>> $link = 'getDeviceLog.php?ida='.$idd.'&tab='.$nameLogTab.'&'.
>> http_build_query(['fieldArry' => $fieldArry]);
>> Dovrebbe funzionare, e alla seconda pagina ti trovi $_GET['fieldArry']
>> che contiene il tuo array di partenza.
>
> ci provo

Perfetto, funziona.

>
>> Ma forse è meglio se trovi un metodo migliore per organizzare tutta
>> l'applicazione.
>

ci stu*****.

Enrico

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Il linguaggio di programmazione PHP | Tutti i gruppi | it.comp.www.php | Notizie e discussioni php | Php Mobile | Servizio di consultazione news.