ho provato anche come dici tu ma resta comunque l'errore
Undefined offset: 0
la riga: if( $i<count($arr) && $arr[$i] )
ma cosa vuol dire?
ho provato anche come dici tu ma resta comunque l'errore
Undefined offset: 0
la riga: if( $i<count($arr) && $arr[$i] )
ma cosa vuol dire?
semplicemente che non esiste l'indice 0 dell'array $arr..
1- partendo dal presupposto che count($arr) è uguale al valore di $maxFields precedentemente dichiarato, non capisco perchè vai a fare un count di un array all'interno di un ciclo... nel caso avessi un array con 1000 o più elementi, probabilmente impiegheresti un 10-20 secondi in più per eseguire il ciclo..Codice PHP:for( $i = 0 ; $i<$maxFields ; $i++ ) {
if( $i<count($arr) && $arr[$i] )
2- controlli, nel ciclo IF che $i sia minore del numero totale di elementi dell'array, quando sai già per certo che lo è, dato che altrimenti, vista la condizione del ciclo FOR, non verrebbe nemmeno eseguito quella porzione di codice..
eXvision
uuupsss
scusate erroraccio da nabbo mio
Ero partito a scrivere il codice con un'altra idea poi l'ho modificato al volo non considerando appunto che gli array indicizzati richiedono codice diverso per accedere ai campi, quindi o lo scorri con il foreach oppure lo risolvi cosi' :
Codice PHP:
if( $arr["campo".$i] )
{ ... }
no no...calma![]()
qui c'è troppa carne al fuoco...
Partiamo con qualcosa di base ( niente controlli ) solo per testare e capire come funziona.
Questo codice funziona, ma solo se i 2 array $ambito e $comune hanno la stessa dimensione.Codice PHP:if (isset($_POST['comune']) && isset($_POST['ambito'])) {
$ambito = $_POST['ambito'];
$comune = $_POST['comune'];
for ($i = 0; $i< sizeof($ambito); $i++) {
$query = "INSERT INTO tbl_relazioni(id_ambito, id_comune) VALUES ('$ambito[$i]','$comune[$i]') ";
$result = dbQuery($query);
}
A me ovviamente serve che funzioni anche per array di dimensioni diverse.
A questo punto vi chiedo, di cosa si tratta? solo di eseguire alcuni controlli?
no no...calma![]()
qui c'è troppa carne al fuoco...
Partiamo con qualcosa di base ( niente controlli ) solo per testare e capire come funziona.
Questo codice funziona, ma solo se i 2 array $ambito e $comune hanno la stessa dimensione.Codice PHP:if (isset($_POST['comune']) && isset($_POST['ambito'])) {
$ambito = $_POST['ambito'];
$comune = $_POST['comune'];
for ($i = 0; $i< sizeof($ambito); $i++) {
$query = "INSERT INTO tbl_relazioni(id_ambito, id_comune) VALUES ('$ambito[$i]','$comune[$i]') ";
$result = dbQuery($query);
}
A me ovviamente serve che funzioni anche per array di dimensioni diverse.
A questo punto vi chiedo, di cosa si tratta? solo di eseguire alcuni controlli?
Partiamo dall'inizio,
1 - controllo dati, vediamo che e come ti arrivano i dati.
Effettua delle selezioni sulle select e poi submita su questo script :
Quindi posta i risultati ( se ci sono dati sensbili mettici delle XXXX ) non importa vedere il dato fisico ma la struttura.Codice PHP:
echo "<pre>" :
var_dump($_POST["ambito"]) ;
echo "<hr>" ;
var_dump($_POST["comune"]) ;
echo "</pre>" ;
Dopo questo devi vedere come gestire tali dati , ma la loro gestione deve sempre partire dalla struttura dati.
ok ,allora mettiamo che seleziono
2 comuni
risultato:
array(3) {
[0]=>
string(1) "6"
[1]=>
string(1) "2"
[2]=>
string(1) "1"
}
3 ambiti
risultato:
array(2) {
[0]=>
string(1) "9"
[1]=>
string(2) "10"
}
mm quindi quei X comuni dovrebbero essere tutti collegati a quei K servizi ?
no, ogni servizio (e solo uno) può avere X comuni e X ambiti ( quelli che seleziono dalle 2 select).
In pratica io creo il servizio, associo per quel servizio X comuni e X ambiti e invio i dati al DB.
il servizio, con tutta la descrizione va nella tabella "servizi", mentre gli ID dei comuni e ambiti, assieme all' ID del servizio che in qualche modo devo recuperarlo ( pensavo di usare mysql_insert_id()), dovrebbero finire in un altra tabella "associazioni" (campi di questa tabella: id_servizio, id_comune, id_ambito).
Per quello che dovrei fare un ciclo for che funzioni per i 2 array che possono essere di dimensione differenti e in più mi inserisca l'id_servizio relativo
capito cmq io ti sconsiglio di fare 1 tabella di relazione per tracciare quei dati non e' normalizzata farei piuttosto
create table servizi_comuni(
id_servizio ....
id_comune ....
primary key(id_serizio,id_comune )
);
Poi
create table servizi_ambiti(
id_servizio ....
id_ambito ....
primary key(id_serizio,id_ambito )
);
cosi' le tabelle tengono i dati in forma normale e sono piu' facili da gestire.
se poi hai creato bene gli id le join sno pure delle scheggie
Per tornare ai dati a questo punto .... fai 2 cicli in sequenza
il primo esegue gli insert per la tabella servizi_comuni e il secondo per la tabella servizi_ambiti.
Non devi annidare nulla.