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

    [PHP Warning] Illegal string offset

    Ciao a tutti,
    ho un array restituito da un metodo della classe DB che esegue una query e ne ritorna l'array con il metodo mysqli::fetch_array();

    Ho il problema che dopo aver instanziato la classe e richiamato il metodo e usando un ciclo for each per stampare il risultato ottengo un warning: Illegal string offset.

    Struttura e unico record della tabella 'brands' interrogata:
    codice:
    id_brand: 1 (INT - PK -AI)
    description: sony tencologia (VARCHAR 255)
    firm: Sony (VARCHAR 255)
    Codice PHP:
    public function getBrands($id=NULL){
                if(
    $id == NULL$query "SELECT * FROM ".$this->brands_t;
                else 
    $query "SELECT * FROM".$this->brands_t." WHERE id_brand=".$id;
                
    $mysqli $this->openDB();
                
    $result $mysqli->query($query);
                if(
    $result) return $data=$result->fetch_array();
                else die(
    "Errormessage: ".$mysqli->error."
    "
    );
                
    $this->closeDB($mysqli);

    Codice che restituisce warning, escluso dal contesto:
    Codice PHP:
     require_once("include/database.class.php");
        
        
    $DB = new DB();
        
        
    $data $DB->getBrands();
        
        echo 
    "var_dump: ";
        
    var_dump($data);
        echo 
    "
    "
    ;
            
        foreach(
    $data as $data){
            echo 
    $data['id_brand']." - ".$data['firm']."
    "
    ;
            
        } 
    Pagina con warning restituita:
    codice:
    var_dump: array(6) { [0]=> string(1) "1" ["id_brand"]=> string(1) "1" [1]=> string(15) "sony tencologia" ["description"]=> string(15) "sony tencologia" [2]=> string(4) "Sony" ["firm"]=> string(4) "Sony" } 
    
    Warning: Illegal string offset 'id_brand' in C:\Program Files (x86)\EasyPHP-12.1\www\mysite_v01\prova2.php on line 14
    
    Warning: Illegal string offset 'firm' in C:\Program Files (x86)\EasyPHP-12.1\www\mysite_v01\prova2.php on line 14
    1 - 1
    
    Warning: Illegal string offset 'id_brand' in C:\Program Files (x86)\EasyPHP-12.1\www\mysite_v01\prova2.php on line 14
    
    Warning: Illegal string offset 'firm' in C:\Program Files (x86)\EasyPHP-12.1\www\mysite_v01\prova2.php on line 14
    1 - 1
    
    Warning: Illegal string offset 'id_brand' in C:\Program Files (x86)\EasyPHP-12.1\www\mysite_v01\prova2.php on line 14
    
    Warning: Illegal string offset 'firm' in C:\Program Files (x86)\EasyPHP-12.1\www\mysite_v01\prova2.php on line 14
    s - s
    
    Warning: Illegal string offset 'id_brand' in C:\Program Files (x86)\EasyPHP-12.1\www\mysite_v01\prova2.php on line 14
    
    Warning: Illegal string offset 'firm' in C:\Program Files (x86)\EasyPHP-12.1\www\mysite_v01\prova2.php on line 14
    s - s
    
    Warning: Illegal string offset 'id_brand' in C:\Program Files (x86)\EasyPHP-12.1\www\mysite_v01\prova2.php on line 14
    
    Warning: Illegal string offset 'firm' in C:\Program Files (x86)\EasyPHP-12.1\www\mysite_v01\prova2.php on line 14
    S - S
    
    Warning: Illegal string offset 'id_brand' in C:\Program Files (x86)\EasyPHP-12.1\www\mysite_v01\prova2.php on line 14
    
    Warning: Illegal string offset 'firm' in C:\Program Files (x86)\EasyPHP-12.1\www\mysite_v01\prova2.php on line 14
    S - S
    Come si vede il ciclo stampa qualcosa del risultato, ma non in modo corretto.

    Uso il ciclo foreach per ottenere risultati allo stesso modo in altre pagine e non ho questo tipo di problema.

    Suggerimenti?

  2. #2
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    fetch_array() ti restituisce solo la prossima riga, quindi nel tuo caso ottieni la prima riga e col foreach iteri questo array.

    Anche questo non andrebbe bene
    Codice PHP:
    foreach($data as $data){ 

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

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.