Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 25

Discussione: cicli for annidati

  1. #11
    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?

  2. #12
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    semplicemente che non esiste l'indice 0 dell'array $arr..
    Codice PHP:
    for( $i $i<$maxFields $i++ )  {            
       if( 
    $i<count($arr) && $arr[$i] ) 
    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..

    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

  3. #13
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    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] )
    { ... } 

  4. #14
    no no...calma

    qui c'è troppa carne al fuoco...
    Partiamo con qualcosa di base ( niente controlli ) solo per testare e capire come funziona.

    Codice PHP:
    if (isset($_POST['comune']) && isset($_POST['ambito'])) {                

    $ambito  $_POST['ambito'];        
    $comune  $_POST['comune'];

    for (
    $i 0$isizeof($ambito); $i++) {
      
    $query "INSERT INTO tbl_relazioni(id_ambito, id_comune) VALUES ('$ambito[$i]','$comune[$i]') ";

    $result dbQuery($query);

    Questo codice funziona, ma solo se i 2 array $ambito e $comune hanno la stessa dimensione.

    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?

  5. #15
    no no...calma

    qui c'è troppa carne al fuoco...
    Partiamo con qualcosa di base ( niente controlli ) solo per testare e capire come funziona.

    Codice PHP:
    if (isset($_POST['comune']) && isset($_POST['ambito'])) {                

    $ambito  $_POST['ambito'];        
    $comune  $_POST['comune'];

    for (
    $i 0$isizeof($ambito); $i++) {
      
    $query "INSERT INTO tbl_relazioni(id_ambito, id_comune) VALUES ('$ambito[$i]','$comune[$i]') ";

    $result dbQuery($query);

    Questo codice funziona, ma solo se i 2 array $ambito e $comune hanno la stessa dimensione.

    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?

  6. #16
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    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 :

    Codice PHP:

    echo "<pre>" :
    var_dump($_POST["ambito"]) ;
    echo 
    "<hr>" ;
    var_dump($_POST["comune"]) ;
    echo 
    "</pre>" 
    Quindi posta i risultati ( se ci sono dati sensbili mettici delle XXXX ) non importa vedere il dato fisico ma la struttura.

    Dopo questo devi vedere come gestire tali dati , ma la loro gestione deve sempre partire dalla struttura dati.

  7. #17
    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"
    }

  8. #18
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    mm quindi quei X comuni dovrebbero essere tutti collegati a quei K servizi ?

  9. #19
    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

  10. #20
    Utente di HTML.it L'avatar di Virus_101
    Registrato dal
    Sep 2008
    Messaggi
    2,497
    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.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.