IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Problème : Call to a member function on a non-object [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Problème : Call to a member function on a non-object
    Bonjour, j'ai essayé déjà de trouver des solutions sur ce forum, mais les autres discutions sur le même sujet ne m'ont pas aidé malheureusement.

    Mon erreur est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Fatal error: Call to a member function Sql() on a non-object in C:\wamp\www\LocatVacance\include\a_1_pagedannonce.php on line 170
    Donc voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    $db=new db;
    $annonce = $_GET['annonce'];
     
    $aa=$_POST['golf'];
    //...
    $ar=$_POST['baignade'];
    if($_POST['hid']==1)
    {
    	$db->Sql("Insert into annonce_activite (IdAActivite, golf, randonnee, tennis, VTT, equitation, casino, cinema, discotheque, bowling, parcdeloisir, nautique, rafting, peche, thalassotherapie, ski, thermalisme, patinoire, baignade) VALUES ('', '$aa', '$ab', '$ac', '$ad', '$ae', $af', '$ag', '$ah', '$ai', '$aj', '$ak', '$al', '$am', '$an', '$ao', '$ap', '$aq', '$ar')");
    }
    if($_POST['hid']==2)
    {
    	$db->Sql("UPDATE annonce_activite SET golf='$aa', randonnee='$ab', tennis='$ac', VTT='$ad', equitation='$ae', casino='$af', cinema='$ag', discotheque='$ah', bowling='$ai', parcdeloisir='$aj', nautique='$ak', rafting='$al', peche='$am', thalassotherapie='$an', ski='$ao', thermalisme='$ap', patinoire='$aq', baignade='$ar' WHERE IdAActivite = '$annonce'");
    }
     
    //Je fais encore 7 requêtes comme celle là.
     
     
    $da=$_POST['refrigerateur'];
    $db=$_POST['congelateur'];
    $dc=$_POST['microondes'];
    $dd=$_POST['four'];
    $de=$_POST['plaquedecuisson'];
    $df=$_POST['lavevaisselle'];
    $dg=$_POST['lavelinge'];
    $dh=$_POST['sechelinge'];
    $di=$_POST['cafetière'];
    $dj=$_POST['grillepain'];
    if($_POST['hid']==1)
    {
    	$db->Sql("Insert into annonce_electromenager(IdAElectromenager, refrigerateur, congelateur, microondes, four, plaquesdecuisson, lavevaisselle, lavelinge, sechelinge, cafetiere, grillepain) VALUES ('', '$da', '$db', '$dc', '$dd', '$de', '$df', '$dg', '$dh', '$di', '$dj')");
    }
    if($_POST['hid']==2)
    {
    	$db->Sql("UPDATE annonce_electromenager SET refrigerateur='$da', congelateur='$db', microondes='$dc', four='$dd', plaquesdecuisson='$de', lavevaisselle='$df', lavelinge='$dg', sechelinge='$dh', cafetiere='$di', grillepain='$dj' WHERE IdAElectromenager = '$annonce'");
    }
    La ligne 170 correspond ici à l'avant dernière ligne, soit le dernier UPDATE.
    Les autres sont exécutés convenablement en ayant malgré tout la même syntaxe.

    Je vous mets le code de mon db.php qui contient toutes les fonctions en relation avec la bdd.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    class DB
    {
    	function Init()
    	{
    		$Base = mysql_connect('localhost', 'root', '') or die('Erreur : mysql_connect');
    		mysql_selectdb('LocatVacance');
    	}
     
    	function Sql($requete)
    	{
    		if(!$Base)
    			$db = new db;
    		$db->Init();
    		$res = mysql_query($requete) or die('Erreur SQL : $query</br>'.mysql_error());
    		return $res;
    		return FALSE;
    	}
     
    	function SqlToArray($requete)
    	{
    		$db = new db;
    		$res = $db->Sql($requete);
    		$tab = array();
    		while($row = mysql_fetch_array($res))
    		{
    			$tab[] = $row;
    		}
    		return $tab;
    	}
    }
    J'ai regardé un peu partout, et je ne vois vraiment pas pourquoi celle ci ne marche pas tandis que les autres s'exécutent sans problème.

    Merci d'avance pour votre aide.

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Bonjour , tu n'aurais pas oublié les parrenthèses ?

    ->


  3. #3
    Futur Membre du Club
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Tout d'abord merci pour la réponse rapide.

    J'ai essayé en rajoutant les parenthèses, mais ça ne change rien, ça me renvoie la même erreur.
    J'ai rajouté les parenthèses dans mon db.php et dans mon code à problèmes.

    Je pense que si ça avait été les parenthèses, j'aurais eu l'erreur dès les premières requêtes. Là le truc qui me gêne vraiment, c'est que ça le fait sur une de mes requêtes et pas les autres.

  4. #4
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    tu fais ça a un moment donné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $db=$_POST['congelateur'];
    donc tu écrase l'objet DB

  5. #5
    Futur Membre du Club
    Étudiant
    Inscrit en
    Juillet 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2009
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Oh merci. Je suis vraiment un boulet.
    Merci.
    Merci.
    Merci.

    J'avais même pas tilté. T_____T

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 11/06/2010, 15h12
  2. [Joomla!] Erreur Call to a member function on a non-object
    Par tchaw dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 27/01/2010, 22h53
  3. Fatal error: Call to a member function on a non-object
    Par alemat13 dans le forum Langage
    Réponses: 6
    Dernier message: 31/12/2007, 18h22
  4. [POO] Call to a member function on a non-object
    Par Roromix dans le forum Langage
    Réponses: 3
    Dernier message: 25/04/2007, 15h40
  5. [phpToPDF] "Call to a member function on a non-object"
    Par pikatshu dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 16/04/2007, 19h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo