class MySQLi: affichage des resultats

rimie1
Invité n'ayant pas de compte PHPfrance

28 mai 2011, 19:11

Bonjour!

J'ai fait une class MySQLi pour connexion base de donnee, et j'ai voulu afficher les resultats differement, voila mon code:
<?php
function select($champs, $table)
{
$selection = "SELECT $this->champs FROM $this->table";
}

$cl->select('nom', 'prenom', 'PremiereTable');
$cl->select('ecole', 'lycee', 'adresse', 'DeuxiemeTable');

// la fonction d'affichage
//PremiereTable
function affichage()
		{	               	
        	while($row = $this->result->fetch_object())
        	{
echo $row->nom.': ';
echo $row->prenom.'<br>';
}
} 

//DeuxiemeTable
function affichage()
		{	               	
        	while($row = $this->result->fetch_object())
        	{
echo 'etudie a l ecole: '.$row->ecole.': '.$row->lycee.' a l adresse suivante: '.$row->adresse.'<br>';
?>
je fais ce bout de code pour afficher mes resultats:
<?php
include 'class.php';

$r = new Connect($db_host, $db_user, $db_passwd);
$r->db($_db);
$r->requete('SELECT', '*', 'etudiants');


while($row = $this->result->fetch_object())
        	{
        		echo '<font color="red">'.$row->nom.'</font><br>';
        		echo '<pre>'.$row->prenom.'</pre>';
        	}
?>

ca me donne l'erreur suivante:
Fatal error: Using $this when not in object context in index.php on line 21
merci pour votre aide

Mammouth du PHP | 19672 Messages

29 mai 2011, 09:17

Salut,
« $this » fait référence à l'instance de l'objet lui-même. Là, tu l'as utilisé en dehors de la classe dans ta boucle while au lieu d'utiliser la bonne référence que tu as créée quelques lignes avant en instanciant ta classe dans la variable « $r » : il conviendrait donc de remplacer « $row = $this->result » par « $row = $r->result »
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

rimie1
Invité n'ayant pas de compte PHPfrance

29 mai 2011, 10:46

merci Cyrano, quand je l'utilisais au sein de classe ca marche parfaitement, en dehors je devais utiliser la variable d'instanciation, nouvelle chose a apprendre:
while($row = $r->result->fetch_object())
merci

Mammouth du PHP | 19672 Messages

29 mai 2011, 10:48

Pas de quoi, tu peux marquer le sujet comme [Résolu] :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

rimie1
Invité n'ayant pas de compte PHPfrance

29 mai 2011, 11:36

je vais m'inscrire dans ce forum afin de marquer mes sujets en RESOLU

Mammouth du PHP | 725 Messages

29 mai 2011, 11:48

voila maintenant c'est bon