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?