Ciao a tutti. Ho creato la seguente classe ma ho un problema con la stampa del contenuto dei dati di un array multidimensionale creato da un fetch_assoc() su una query.
Il problema è che la funzione stampa() ke potete vedere alla fine del codice quando la richiamo mi stampa solo o la dimensione 'nome' dell'array o quella 'cognome'. se provo a stamparle entrambe mi stampa solo la colonna nome o cognome in base a quale chiamo x prima.
Grazie a chiunque sappia aiutarmi. Con il codice capirete meglio il probl:
Ho imparato da poco il php e se notate che ci sono errori di tipo logico o qualsiasi buona prassi da rispettare, non rispettata, avvertitemi gentilmente:
<?php
class MySql{
var $host;
var $user;
var $password;
var $database; //nome del database
var $errorC = false; //errore Connessione al Db
var $errorQ = false; //errore richiesta query
var $connessione; //mysqli_connect
var $mysql; //mysqli_query
var $query;
var $arr_dati;
function MySql($host,$user,$password,$database){
$this->host=$host;
$this->user=$user;
$this->password=$password;
$this->database=$database;
}
function connessione(){
$this->connessione = mysqli_connect($this->host, $this->user, $this->password, $this->database);
if(!isset($this->connessione)){
die("Connessione al Db fallita");
$this->errorC = true;
}
}
function query($sql){
$this->mysql = mysqli_query($this->connessione, $sql);
if(!isset($this->mysql)){
trigger_error (
'Query fallita: '.mysql_error($this->connessione).
' SQL: '.$sql);
$errorQ = true;
}
}
function size(){
$size = mysqli_num_rows($this->mysql);
return $size;
}
function fetch(){
if($this->size() > 0){
$this->arr_dati = mysqli_fetch_assoc($this->mysql);} else {
trigger_error('la query non ha avuto risposte');
$errorQ = true;
}
return $this->arr_dati;
}
function stampa($cosa){
while($this->arr_dati){
echo $this->arr_dati[$cosa];
}
}
}
?>
questa è la classe. Che poi richiamo da qui:
<?php
include("MySql.php");
$host = 'localhost';
$user = 'root';
$password = '';
$database = 'test';
$qry = "SELECT * FROM tab1";
$db = new MySQL($host,$user,$password,$database);
$db->connessione();
$db->query($qry);
$db->stampa('cognome');
$db->stampa('nome');
?> cosi ad esempio stampa solo i cognomi
<?php
include("MySql.php");
$host = 'localhost';
$user = 'root';
$password = '';
$database = 'test';
$qry = "SELECT * FROM tab1";
$db = new MySQL($host,$user,$password,$database);
$db->connessione();
$db->query($qry);
$db->stampa('nome');
$db->stampa('cognome');
?>cosi solo i nomi