Problème de classe

Eléphant du PHP | 451 Messages

09 juil. 2008, 23:11

Bonsoir,

Voilà j'ai une classe avec des requêtes sql et le problème c'est que quand je ne aucune fonction de la classe les requêtes cherche toujours à s'exécuter quand même.

Voici le message d'erreur généré:

Code : Tout sélectionner

Parse error: syntax error, unexpected T_IF in /home/t/o/r/djtec/www/home/includes/class/class_search.php on line 18
Voici ma classe:
<?php

class Search
{

	var $author;
	var $title;
	var $days;
	var $duration;


	// Fonction de recherche par auteur
	function search_author()
	{
	
		$sql = "select * from ".$prefix.TABLE_SEARCH." where author like '%".$this->author."%' order by id"
		
		if( empty($this->author) )
		{
			if( !($req = $db->sql_query($sql)) )
			{
				message_die('Erreur SQL:', __LINE__, __FILE__, $sql);
			}
		}
		
		return $req;
	
	}
	
	
	// Fonction de recherche par titre
	function search_title()
	{
	
		$sql = "select * from ".$prefix.TABLE_SEARCH." where title like '%".$this->title."%' order by id"
		
		if( !($req = $db->sql_query($sql)) )
		{
			message_die('Erreur SQL:', __LINE__, __FILE__, $sql);
		}

		return $req;
	
	}
	
	
	// Fonction de recherche par date de sortie
	function search_days()
	{
	
		$sql = "select * from ".$prefix.TABLE_SEARCH." where days like '%".$this->days."%' order by id"
		
		if( !($req = $db->sql_query($sql)) )
		{
			message_die('Erreur SQL:', __LINE__, __FILE__, $sql);
		}

		return $req;
	
	}

}
?>
J'ai cherché mais je ne vois pas comment faire donc si quelqu'un à une idée elle sera la bien venu.

Merci d'avance...

ViPHP
ViPHP | 5924 Messages

09 juil. 2008, 23:19

Je suis désolé, mais j'ai beau essayer, rien n'y fait, je n'arrive pas à ne pas voir ton erreur, elle est si flagrante :)
Cherche à la fin de la ligne précédente…

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

09 juil. 2008, 23:22

Je ne comprend rien à ton message ... :?

Toujours est-il que l'erreur signifie que PHP a rencontré un if à la ligne 18 alors qu'il n'attendais pas ça.
Pour résoudre cette erreur, il faut se rendre à la ligne 18, et revenir aux derniers caractères avant ce if qui ne devrait pas être là.
Et, effectivement, il manque un ; à la fin de l'instruction précédente.

Mais j'aimerais que tu nous précises comment ce message d'erreur t'as amené à penser que tes requêtes s'exécutaient quand même ... :-k
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

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

10 juil. 2008, 18:16

Mais j'aimerais que tu nous précises comment ce message d'erreur t'as amené à penser que tes requêtes s'exécutaient quand même ... :-k
Sans doute ne comprenait-il pas comment une erreur pouvait être signalée dans une méthode alors que celle-ci n'était pas appellée :)

La réponse étant que comme il s'agit d'une "parse error" php considère que le script n'est pas valide et ne l'exécute pas - en fait il fait une "relecture" de ton script avant de l'exécuter, et arrête donc tout avant même de savoir si tes méthodes sont appellées ou pas :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 139 Messages

11 juil. 2008, 10:33

aussi bête que ça soit, il manque un point virgule après les déclarations de $sql :)

EDIT : oops, réponse déja trouvée, ... pas bien réveillé :/ désolé du dérangement :oops:

ViPHP
ViPHP | 5924 Messages

11 juil. 2008, 12:42

Par ailleurs ce n'est pas la meilleure idée qu'il soit de donner la réponse cash... Il est mieux de donner des pistes de réponses...

Eléphant du PHP | 451 Messages

11 juil. 2008, 18:08

oulah il faut que j'arrête de boire :D

J'ai cherché partout sans rien voir :oops: :oops: :oops: :oops: :oops:

C'est vrai que l'erreur est facile pourtant

Désolé

Merci beaucoup

Je sais pas ce que je pensais se jour là mais surement qu'il fallait que j'aille dormir...............