requete sql dans ajax

nadalator666
Invité n'ayant pas de compte PHPfrance

25 avr. 2007, 15:37

salut à tous,
je voulais savoir si il était possible de faire une requete sql dans une class.
j'ai en effet une erreur avec mon calendrier. Lorsque je clique sur mois suivant/précédent, j'ai une erreur.
Cette erreur se trouve lors de la requete pour l'affichage des evenements.

Code : Tout sélectionner

/** * ajout d'évènement * affec_day($day, $link='#', $class='',$titre='') * @param $day au format timestamp * @param $link optionnel * @param $class optionnel * @param $titre optionnel */ $calendar_event_q = $db->Query("SELECT * FROM calendar WHERE active='Y'"); //while($calendar_event = $db->GetObject($calendar_event_q)){ $calendar_event = $db->GetObject($calendar_event_q); $event_date = $calendar_event->event_date; $event_date1 = strtotime($event_date); //$fin1 = mktime(0,0,0,4,12,2007); $calendrier->affec_day($event_date1,'page_19','calendar_event',$calendar_event->event_name); //}
quand je clique sur mois suivant par exemple, j'ai l'erreur :
Fatal error: Call to a member function on a non-object in /srv/www/htdocs/cyril/AlexandraPark_WebSite/calendar/calendrier.php on line 479
En fait ca marche j'ai mes evenemnt qui sont affiché dans mon calendrier mais des que je change de mois ca plante.

Si vous pouvez m'aider
Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

25 avr. 2007, 15:43

Pour répondre à ta question, oui, c'est possible :)

"Call to a member function on a non-object " => tu fais appel à la méthode d'un objet sur une variable qui n'est pas un objet.
$calendrier->affec_day(...);
En supposant que ce soit la ligne en question (469), est ce que l'instance $calendrier a bien été définie à partir d'un new NomDeTaClasse() ?

Même question pour l'instance $db, a-t-elle bien été déclarée au préalable ? :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Petit nouveau ! | 2 Messages

25 avr. 2007, 15:51

la ligne 479 est la requete sql.
Oui mon instance $calendrier a bien été définie :

Code : Tout sélectionner

$calendrier = new calendrier($annee, $mois);
pour l'instance $db, oui elle a été déclaré mais pas dans la meme page, vu que le calendrier est seulement appelé par un "include". Donc $db est déclaré dans un autre fichier que je me sers souvent pour le site que je fais.

Petit nouveau ! | 2 Messages

25 avr. 2007, 18:01

Tu avais raison Ryle.
L'instance $db n'est pas correctement déclaré. Elle l'était pour les autres pages 'php' mais pour l'Ajax, il fallait la redéclarer!
Tout marche maintenant.

Merci