Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317

    Tutto funziona alla grande ma restituisce un errore

    Codice PHP:
    function dbFetchEscapedArray($queryId$not_parsed_columns = array()) {
        global 
    $dbConnect;
        
    $result $dbConnect->mysqli_fetch_array($queryIdMYSQLI_ASSOC);
        foreach (
    $result as $key => $value) {
            if (!
    in_array($key$not_parsed_columns)) {
               
    $result[$key] = UTF8_htmlSpecialChars($value);
            }
        }
        
        return 
    $result;

    Errore:
    Warning: Invalid argument supplied for foreach() in [...]/includes/MySQLi.php on line 73

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    ok, forse sto ciclando una risorsa? Mi sembra strano...

    Comunque in caso, come posso ciclare una risorsa? Per il momento ho risolto utilizzando mysqli_num_fields conteggiando il numero di campi e poi ciclandoli utilizzando mysqli_field_name, ma preferirei una soluzione alternativa...

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Prova a fare un print_r o var_dump di $result e vedi cosa contiene.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Prova a fare un print_r o var_dump di $result e vedi cosa contiene.
    contiene esattamente l'array, la cosa divertente è che funziona... ma ritorna l'errore, ho risolto così:

    Codice PHP:
    function dbFetchEscapedArray($queryId$notParsedColumns = array()) {
        global 
    $dbConnect;
        if (!(
    $result $dbConnect->mysqli_fetch_array($queryId))) {
            return;
        }
        
        
    $assoc = array();
        
    $rowCount $dbConnect->mysqli_num_fields($queryId);
        
        for (
    $i 0$i $rowCount$i++) {
            
    $field $dbConnect->mysql_field_name($queryId$i);
            if (!
    in_array($field$notParsedColumns)) {
                
    $assoc[$field] = UTF8_htmlSpecialChars($result[$i]);
            } else {
                
    $assoc[$field] = $result[$i];
            }
        }

        return 
    $assoc;

    Anche se, come ripeto preferirei non utilizzare questo costrutto...
    Dopo provo a vedere var_dump magari mi da delle informazioni più dettagliate e sto realmente provando a ciclare una risorsa...

  5. #5
    usa while per ciclare il result set.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.