array non riconosciuta fuori dal foreach

Monital

Utente Attivo
15 Apr 2009
778
2
18
vi starete chiedendo: ancora??????????

ebbene si.

preciso che mi rivolgo qua ed in giro quando proprio sono alla frutta e dopo non aver trovato neinte in giro

premesso ciò il problema che ho riscontrato è che la variabile array fuori dal foreach la perdo

mi spiego

ho un array ricavato da un form action. la richiamo

con

PHP:
$variabile=$_POST['variabile'];

la passo in foreach
PHP:
foreach($variabile as $var){

.....varie istruzioni....
}
fin qui tutto ok
se l'array era pippoplutotopolino stampando $var."<br>" mi da
pippo
pluto
topolino

però se faccio an cosa del genere
PHP:
foreach($variabile as $var){

.....varie istruzioni....
}

update tabella set $var

mi mette solo topolino

avevo pensato di upparla nel database per poi riprenderla in u altro file incluso nel file principale allora ho provato a inserirla direttamente

PHP:
foreach($variabile as $var){

.....varie istruzioni....
}

//....altri dati con altre istruzioni....

echo $var;

mi da solo topolino cioè l'ultimo elemento dell'array.

come mai sta cosa?

diemnticavo ho fatto anche un altra prova ho inviato le varie variabili ad un terzo file dove poi andavoa d incluidere l'ultimo
ho riforeachato tutte le variabili(sono 3 e tutte risultati di array)sul file nuovo
quindi
PHP:
foreach($variabile as $var){

foreach($variabile1 as $var1){

foreach($variabile2 as $var2){

}
}.
}
echo $var
echo $var1
echo $var 2

ma niente

ora che sto imparando l'uso degli array e delle caselle multiple inizia a piacermi :love:
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
È normale che stampi solo l'ultimo valore dell'array. Se vuoi avere tutti gli elementi concatenati puoi fare così:
PHP:
$variabile = array('pippo', 'pluto', 'topolino');
echo implode(',', $variabile);
Che visualizzerà:
Codice:
pippo,pluto,topolino

Per maggiori informazioni dai un'occhiata alla documentazione della funzione implode().
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
È normale che stampi solo l'ultimo valore dell'array. Se vuoi avere tutti gli elementi concatenati puoi fare così:
PHP:
$variabile = array('pippo', 'pluto', 'topolino');
echo implode(',', $variabile);
Che visualizzerà:
Codice:
pippo,pluto,topolino

Per maggiori informazioni dai un'occhiata alla documentazione della funzione implode().

ho usato implode ma non mi davaa niente in pratica devo rimmeterlo nell'array

provo
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
ho trovato cosa sbagliavo però nons o come risolvere

cmq in pratica io avevo fatto
PHP:
foreach($variabile as $var){
$newvar=$var."(".$v).";
}

quindi quando andavoa inserire o ad usare $newvar in altri richiami andava in pappa

difatti ho provato a richimare fuori dalla foreach $variabile e va

allora $v è un dato fisso in abse a dove è piazzata $variabile

cmq sia ho risolto così grazie alla tua intuizione
la fase rpecedente l'ho lasciata così perchè mis erve così in quel file ed invece epr la registrazione ho usato
PHP:
$newvar2=implode(",",$variabile)."(".$v.")";

così me la chiama giusta

ora dovrò solo provare a updatarla nel database

quindi mi sa ritorno a breve in questo topic
:asd:
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
allora riguardo le variabili provenienti dalla select multiple funziona perfettamente ma non da quelle provenienti dal input text del topic precedente

in pratica la variabile $x ha il valore isnerito dall'utente 1-2-3 etc.
l'ho associato al'id(come da istruzioni precedenti) e ricavato il nome per ogni casella con valore diverso da 0
PHP:
$variante=array();
$sql = "SELECT * FROM tabella where ID='{$id1}' order by Nome";
$result = mysql_query($sql);
while ($lin = mysql_fetch_array($result, MYSQL_ASSOC)) {
$variante[]=$lin['Nome'];
}

foreach($variante as $vat){
$finale=$vat."(".$value1.")";
echo $finale;
}
praticamente fin qua funziona tutto ma dopo il foreach ho incluso una pagina a cui serve la lista dei nomi cioè $finale ho provato ricreando l'array facendo implode sia di $finale che di $variante che di $vat mi restituisce solo l'ultimo valore anche usando implode

niente di niente



deve essere sicuramente una sciocchezza indi confido in voi
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Mi sorge un dubbio. Il tuo script seleziona dalla tabella i record il cui campo ID corrisponde ad un determinato valore. Se hai seguito la logica, ogni record dovrebbe avere un campo ID diverso, perché serve per identificarlo e distinguerlo dagli altri. Quindi l'array $variante conterrà sempre un solo record, perché estrarrà solo il record con quell'ID.
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
Mi sorge un dubbio. Il tuo script seleziona dalla tabella i record il cui campo ID corrisponde ad un determinato valore. Se hai seguito la logica, ogni record dovrebbe avere un campo ID diverso, perché serve per identificarlo e distinguerlo dagli altri. Quindi l'array $variante conterrà sempre un solo record, perché estrarrà solo il record con quell'ID.

mi lasci perplesso perchèio quando vado a stampare $variante sempre nel foreach eprò, mi stampa la lista mentre come esco dalle graffe stampa solo l'ultimo

a rigor di logica credo di aver compreso cosa dici ma allora come faccio so incatenato? conta che devo riutoilizzare sia $variante che $value (il vaore della cassella di testo) e fuori dalla foreach

:incazz:
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
Il fatto è che io non ho ancora capito bene cosa vuoi fare. Puoi rispiegarmelo?

allora

ho una variabile che provviene da qui

PHP:
<td height="16px">
    <center>
        <?php
        $sql = "SELECT * FROM {$tabella} where Provincia = '{$provincia}' order by Nome";
        $result = mysql_query($sql);

        while ($row = mysql_fetch_assoc($result)) {
            echo "<input type=\"text\" name=\"marcaB[{$row['ID']}]\" style=\"font-size: 8pt; color:#000000; height:16px; width:30px;\" value=\"0\" /> <br />";
        }
        ?>
    </center>

ora ho proceduto così
PHP:
if (count($marcaB)) {
    foreach ($marcaB as $id1 => $value1) {
		if($value1!=0){
$recfcasa=array();
$sql = "SELECT * FROM tabella where ID='{$id1}' order by Nome";
$result = mysql_query($sql);
while ($lin = mysql_fetch_array($result, MYSQL_ASSOC)) {
$recris[]=$lin['Nome'];
}

$inifcasa= substr($fc, 0, 2);
foreach($recris as $mfc){

echo $mfc."(".$value1." ".$inifcasa.")";

$marcatop=$mfc."(".$value1." ".$inifcasa.")";


}

	}

    }
}

adesso quando faccio l'echo di $mcf etc. mi stampa la lista come volevo, il problema nasce dal fatto che i dati contenuti in $mcf o $marcatop mi servono per il file successivo.

preciso che l'ho strutturato così

ho paginaprincipale.php
PHP:
include('pagina1.php');
include('pagina2.php');
include('pagina3.php');

tutto il codice di cui sopra è in pagina2.php mentre in pagina 3 php faccio lavorare lo script su le variabili presenti nei due file precedenti, questo eprchè ho voluto evitare la trasmissione dei dati con hidden.(coa cmq che ho provato ma non funziona).

ora se eseguo un'istruzione qualunque all'interno del foreac della pagina2 sulla variabile $mcf è tutto ok ma dato che la pagina 3 è successiva e quindi fuori dal foreach non mi riconosce + $mcf o $marcatop. mi stampa/inserisce/elabora solo l'ultimo elento di $mcf il resto niente.

a me serve la variabile intera

ho provato anche ad inviare i dati tramite un hidden su un altra pagina ma non la richiama con $_POST


spero die ssere stato più chiaro
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
forse ci sono

PHP:
foreach($recris as $mfc){

echo $mfc."(".$value1." ".$inifcasa.")";

$marcatop=$mfc."(".$value1." ".$inifcasa.")";


}

ho fatto na amrea di prove di tutte le maniere ho rpovato a riodrinare l'array con sort poi resettarlo e con un ciclo while each ho provato a riassegnargli le chiavi però poi mi so accorto di una cosa

selezionando due caselle di teste e recuperando il nome tramite la select come da codice sopra, con foreach($recris as mc) $mc elenca i due nomi ma facendo

print_r($recris) mi da sto risultato

array([0]=>Nome1)array([0]=>Nome2) quindi con le stesse chiavi
in pratica in $recris ci sono ranti array singoli quyante soeno le caselle diverse da 0 non sapevo si potesse fa e comunque come faccioa scinderli?
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
A Non è un array e nemmeno un intero, che tipo di dato è? Javascript 1
M [PHP] Visualizzare un array partendo dal numero 1 e non 0 PHP 5
alessandra86 [PHP] Elementi di un array non visualizzabili PHP 7
otto9due Questione di array.. I risultato del foreach non è quello che voglio.. PHP 4
L Funzione non restituisce completamente un array PHP 2
L Andare a capo con gli array non troncando le parole Classic ASP 1
D Se non trova un elemento in array restituisce il testo dell'elemento PHP 2
L array che non funziona PHP 1
K Javascript non scrive nulla [array] Javascript 1
otto9due Leggere valore da array multidimensionale a chiavi dinamiche PHP 1
M Passaggio variabili array php su un tasto jq PHP 3
M Somma inversa di Array C/C++ 2
MarcoGrazia Iterazione array PHP 5
N Passare array da php a javascript PHP 5
G Ordinare un array multidimensionale PHP 4
H Errore su array associativo PHP 1
K Array senza ripetizioni Presentati al Forum 4
A Gestione array multidimensionale PHP 6
otto9due Più chiavi in array con array_key_exists() PHP 0
M Array associativi php su 2 campi mysql PHP 10
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
T PROBLEMA CON ARRAY PHP 8
L Sessione e array per utenti PHP 0
R Importazione csv su mysql tramite array PHP 2
elpirata Ricavare e stampare indirizzo ip da array associativo PHP 0
P Ciclare tra array di oggetti PHP 1
R Raggruppare valori array PHP 5
S Come conoscere la posizione di numeri in un array escludendo i doppioni PHP 4
D Popolare array PHP 8
R Includere elementi array fra apici PHP 1
P Array da foreach PHP 2
N Variabile di sessione è un array PHP7 PHP 3
R Scorporare array e recuperare record tabella PHP 10
A Contare gli elementi di un array PHP 13
A Importare array in mysql PHP 1
A Array di immagini Sviluppo app per Android 10
D Chiave unica in estrazione dati da array php PHP 0
D Spazio vuoto in un elemento di un array php PHP 2
S Come filtrare valori di un array PHP 4
mazman mysqli_query() mi ritorna un array vuoto anche se presente un record nella tabella PHP 13
max1974 PHP, Array Multidimensionale e Grafici PHP 22
S [PHP] Confrontare due array con valori quasi uguali PHP 2
MarcoGrazia [PHP] Unioni di due array con somma di valori PHP 6
R [PHP] Visualizzazione dati Array PHP 2
S [PHP] Eliminare doppioni array e rinumerare le posizioni PHP 2
M Importare - Manipolare Json Array Sviluppo app per Android 2
M [PHP] Problemi su inserimento array nel db PHP 7
G [ASP] Ciclare i valori di 2 array Classic ASP 2
S [PHP] Estrarre elementi array su più variabili PHP 5
S [PHP] Estrarre dati tabella in diversi array PHP 2

Discussioni simili