Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Controllo elemento array vuoto

    Ho un array fatto come sotto... e vorrei controllare se uno dei valori (aaa o bbb o ccco ddd) è vuoto.
    In pratica l'array forma le righe di una tabella di valori che dovrei inviare a mysql per popolare un db e volevo semplicemente essere in grado di dire "se una riga della tabella ha un valore vuoto non importarla nel db e vai a controllare la successiva... "

    codice:
    Array
    (
        [1] => Array
            (
                [aaa] => 1
                [bbb] => 2
                [ccc] => r1
                [ddd] => r1
    
    
            )
    
    
        [2] => Array
            (
                [aaa] => 2
                [bbb] => 3
                [ccc] => r2
                [ddd] => r2
    
    
            )
    
    
        [3] => Array
    ... ... ...
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Come lo fai adesso ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Come lo fai adesso ?
    So che sono 10righe da inserire nel db (ho un ciclo che manda aaa1, bbb1, ccc1, aaa2, bbb2 ccc2...) e un form che manda i valori in Post.
    Di queste 10 devo inserire solo quelle che presentano valori (se un elemento della riga è vuoto ci deve essere errore).
    Ho fatto un ciclo che per 10 volte prende il POST e lo mette nell'array... $arr_dati[$i] = array('aaa$i'=>$valore, etc)
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Non sono sicuro di avere capito bene. Comunque.

    codice:
    <?php 
    $arr_dati    = array();
    $arr_dati[0] = array('aaa' => 1,'bbb' => 2,'ccc' => 3, 'ddd' => 4);
    $arr_dati[1] = array('aaa' => 11,'bbb' => 12,'ccc' => '', 'ddd' => 14);
    $arr_dati[2] = array('aaa' => 21,'bbb' => 22,'ccc' => 23, 'ddd' => 24);
    foreach($arr_dati as $key => $value) {
      foreach($value as $key2 => $value2) {
       if (trim($value2) == '') {
        print "$key2 => $value2 vuoto<br/>";
      } else {
        print "$key2 => $value2 non vuoto<br/>";
      }
     }
    }
     ?>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Non sono sicuro di avere capito bene. Comunque.
    Pensavo ci fosse una qualche funzione di php sugli array già pronta... comunque la tua soluzione pare funzionante e individua i valori vuoti...
    Grazie mille
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  6. #6
    Avrei un'altra domanda legata a quanto detto prima...

    Come ricompongo l'array per mandare i dati alla query Insert?

    Cioè ... se ho
    Array(
    [1] => Array(
    [aaa] => 1
    [bbb] => 2
    [ccc] =>
    [ddd] => r1 )


    [2] => Array(
    [aaa] => x
    [bbb] => y
    [ccc] => z
    [ddd] => w )

    E grazie allo script di prima so che CCC di [1] è vuoto.

    Dovrei quindi avvisare che c'è un problema, e che, o si torna al form per compilare il dato mancante, oppure viene saltata la riga e si prosegue togliendo quindi tutto [1] dall'array principale... così che nella query per l'inserimento ci va a finire solo il [2]
    Ultima modifica di ricman; 11-03-2015 a 13:01
    Fantasupermegafavolipermeramagicultra irresistibili
    4 10 30 100 1001 personaggi insuperabili fantaincredibili ultraimpossibili iperterribili irresistibili!!!

    "... a quell'età ... bastava un dito per fare la pace ..."
    fotine

  7. #7
    il concetto è

    codice:
    if validazioneDelDatoOk then
         salvoInDb
    else
        stampoMessaggioErroreValidazione
    end if
    quindi se per te il fatto che ccc sia vuoto è un errore di valdiazione, dovresti stare nell'else, quindi il punto "salvoInDb" dovrebbe essere indolore per te e non farti venire in mente tale domanda
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  8. #8
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Una funzione più elegante. Da testare perche sono un po' arrugginito lato ricorsioni.

    codice:
    <?php 
    $arr_dati    = array();
    $arr_dati[0] = array('aaa' => 1,'bbb' => 2,'ccc' => 3, 'ddd' => 4);
    $arr_dati[1] = array('aaa' => 11,'bbb' => 12,'ccc' => '', 'ddd' => 14);
    $arr_dati[2] = array('aaa' => 21,'bbb' => 22,'ccc' => 23, 'ddd' => 24);
    $arr_dati[3] = array('aaa' => 31,'bbb' => 32,'ccc' => 33, 'ddd' => 34);
    $arr_dati[4] = array('aaa' => 41,'bbb' => 42,'ccc' => 43, 'ddd' => 44);
    function innn($toFind,$array) {
      $first = array_shift($array);
     if (is_array($first)) {
      return in_array($toFind,$first) or innn($toFind,$array);
     }
     return false;
    } // function innn($toFind,$array)
    $res = innn('',$arr_dati);
    if ($res === false) {
      print "non trovato";
    } else {
      print "trovato";
    }
    ?>
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

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 © 2025 vBulletin Solutions, Inc. All rights reserved.