Fonction fetch() error
Résolu
blackbutterfly
-
blackbutterfly Messages postés 100 Statut Membre -
blackbutterfly Messages postés 100 Statut Membre -
Bonjour,
Voici mon problème :
Sur une page html, je dois générer automatiquement des lignes provenant de ma base de données. Ainsi, je fais le code suivant pour pouvoir les récupérer :
include ("classes/MProduit.class.php");
$produit = new MProduit();
$List_Presta = $produit->Get_MP_info();
$nb = sizeof($List_Presta['CODE']);
echo ($produit['ID_PRESTA']);
Comme vous le voyez, j'appelle la fonction Get_MP-info contenu dans MPrduit.class.php. Cette fonction ressemble à ça:
public function Get_MP_info ()
{
define ('SERVEUR', 'localhost');
define ('USER', 'root@localhost');
define ('Paswd', '');
define ('db', 'test');
$cnx = mysql_connect(SERVEUR, USER,Paswd, db) ;
$DB = mysql_select_db(db) ;
$sql = "SELECT ID_PRESTA, CODE, LIBELLE, PVHT, TVA, PVTTC
FROM PRESTATION";
$res = mysql_query($sql, $cnx) or die (mysql_error());
$VAL = mysql_fetch_array($res) or die (mysql_error());
return $VAL;
}
et pourtant j'obtiens cette erreur :
Fatal error: Cannot use object of type MProduit as array pour cette ligne : echo ($produit['ID_PRESTA']);
J'ai suivi un tuto, car travaillant habituellement sur oracle, mysql n'est pas mon fort. Si vous avez une idée de pourquoi cela ne fonctionne pas ou une méthode plus simple ( je tiens à garder la fonction en dehors du fichier contenant la page) je suis preneur.
Merci de l'attention que vous portez à mon problème. Cordialement
Voici mon problème :
Sur une page html, je dois générer automatiquement des lignes provenant de ma base de données. Ainsi, je fais le code suivant pour pouvoir les récupérer :
include ("classes/MProduit.class.php");
$produit = new MProduit();
$List_Presta = $produit->Get_MP_info();
$nb = sizeof($List_Presta['CODE']);
echo ($produit['ID_PRESTA']);
Comme vous le voyez, j'appelle la fonction Get_MP-info contenu dans MPrduit.class.php. Cette fonction ressemble à ça:
public function Get_MP_info ()
{
define ('SERVEUR', 'localhost');
define ('USER', 'root@localhost');
define ('Paswd', '');
define ('db', 'test');
$cnx = mysql_connect(SERVEUR, USER,Paswd, db) ;
$DB = mysql_select_db(db) ;
$sql = "SELECT ID_PRESTA, CODE, LIBELLE, PVHT, TVA, PVTTC
FROM PRESTATION";
$res = mysql_query($sql, $cnx) or die (mysql_error());
$VAL = mysql_fetch_array($res) or die (mysql_error());
return $VAL;
}
et pourtant j'obtiens cette erreur :
Fatal error: Cannot use object of type MProduit as array pour cette ligne : echo ($produit['ID_PRESTA']);
J'ai suivi un tuto, car travaillant habituellement sur oracle, mysql n'est pas mon fort. Si vous avez une idée de pourquoi cela ne fonctionne pas ou une méthode plus simple ( je tiens à garder la fonction en dehors du fichier contenant la page) je suis preneur.
Merci de l'attention que vous portez à mon problème. Cordialement
A voir également:
- Fonction fetch() error
- Fonction si et - Guide
- Fonction moyenne excel - Guide
- Cmos checksum error ✓ - Forum Carte-mère/mémoire
- Fonction remplacer sur word - Guide
- Error 1962 ✓ - Forum PC fixe
3 réponses
Problème en cours de résolution. Modification apporté :
{
define ('USER', 'root@localhost');
define ('Paswd', '');
$dbh = new PDO('mysql:host=localhost;dbname=test', USER, Paswd);
//$DB = mysql_select_db(db) ;
$sql = "SELECT ID_PRESTA, CODE, LIBELLE, PVHT, TVA, PVTTC
FROM PRESTATION";
$res = $dbh->query($sql) or die (mysql_error());
$VAL = res->fetch();
return $VAL;
}
c'est le $VAL = res->fetch() qui me pose problème maintenant : unexpected T_OBJECT_OPERATOR
{
define ('USER', 'root@localhost');
define ('Paswd', '');
$dbh = new PDO('mysql:host=localhost;dbname=test', USER, Paswd);
//$DB = mysql_select_db(db) ;
$sql = "SELECT ID_PRESTA, CODE, LIBELLE, PVHT, TVA, PVTTC
FROM PRESTATION";
$res = $dbh->query($sql) or die (mysql_error());
$VAL = res->fetch();
return $VAL;
}
c'est le $VAL = res->fetch() qui me pose problème maintenant : unexpected T_OBJECT_OPERATOR
Sinon je ne vois pas ce qui cloche sur cette ligne...
define ('USER', 'root@localhost');
define ('Paswd', '');
$pdo = new PDO('mysql:host=localhost;dbname=test', USER, Paswd);
//$DB = mysql_select_db(db) ;
$sql = "SELECT ID_PRESTA, CODE, LIBELLE, PVHT, TVA, PVTTC
FROM PRESTATION";
$stmt = $pdo->prepare($sql);
$rs = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->closeCursor();
return $rs;
}
Maintenant j'ai ces problèmes sur ma page où je dois générer les tuples :
Pour $nb = sizeof($List_Presta['CODE']); mysql me renvoi :
Undefined index: CODE
Pour echo ($produit['ID_PRESTA']); mysql me renvoi :
Cannot use object of type MProduit as array
A la demande de Forbec ( m'aidant en ce moment) j'ai fait un print_r($rs) et celui-ci me renvoi array empty alors qu'il y a bien des tuples dans ma base ( j'ai refais le test )