Bonjour,

Je tente la migration MySQL 3.23 PHP4 vers PHP5 et MySql5.

J'ai un problème sur une fonction dont les variables sont envoyés d'une certaine manière.

Voici un exemple concret, variable à suivre : $query ($str_query dans la fonction du dessous).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if (!res_setSearchQuery($query = ''))												//requête de recherche
		{
			err_set(__FILE__, __LINE__);
			return SHARED_FALSE;
		}
		$res = false;
 
		if (!$res = mysql_query($query))													//extrait les infos des lots et agence, pas tarifs
		{
			db_mysql_trace($dg);
			$dg['query'] = $query;
			err_set(__FILE__, __LINE__, 'ERR_MYSQL_QUERY', $dg);
			return SHARED_FALSE;
		}
Il semblerait que la fonction res_setSearchQuery renvoie vrai alors que la variable $query reste vide.

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
37
38
39
40
41
function res_setSearchQuery(&$str_query)
	{
		static $_f = 'res_setSearchQuery';
 
 
		if (!res_setSyndStr($syndstr = ''))											//ids agences d'un syndicat
		{
			err_set(__FILE__, __LINE__);
			return SHARED_FALSE;
		}
 
		//lib_trace_var($_f, 'syndstr', $syndstr);
 
		$vn_searchtype = $vn_net_id = $vn_agency_id = '';
		$sharedstr = '';
 
		$vn_searchtype	= &$GLOBALS['vn_searchtype'];
		$vn_net_id		= &$GLOBALS['vn_net_id'];
		$vn_agency_id	= &$GLOBALS['vn_agency_id'];
 
		$sharedstr		= "SELECT lots.RefAgence,lots.No_Lot,lots.Ref_Lot,lots.No_Tarif,lots.Type_Bien,lots.Type_Caution,lots.Taux_Caution,lots.DateBlocage,lots.Lot_Bloque,lots.Nb_Couchages,lots.Surf_Totale,lots.AfficherPrixInternet,lots.Abattement,agence.RaisonSociale,agence.TauxAcompte,agence.TypeArrondi,agence.Mail,agence.MailFormat,agence.Adresse1,agence.Adresse2,agence.MenageIntegre FROM lots LEFT JOIN agence ON agence.RefAgence=lots.RefAgence";
 
 
		//
		//Recherche par le formulaire client (pour les sites clients)
		//
		if($_POST['searchtype'] == 'form_client')
		{
			//echo "Formulaire client";
			$_SESSION['agency_id'] = $_POST['RefAgence'];
 
			$str_query = "$sharedstr WHERE (lots.RefAgence = '".$_POST['RefAgence']."'";
 
			res_setCritStr($critstr = '');
 
			if (!lib_emp_str($critstr))
						$str_query .= " AND $critstr";
 
			$str_query .= ')';
		}
else ... je coupe la
Ce code se répète avec des else et si aucun cas de $_POST['searchtype'] n'est accepté une erreur est renvoyé sinon ca renvoie vrai.

Donc théoriquement pour arriver jusqu'à l'exécution de $res = mysql_query($query) $query ne peux pas être vide.

Pourtant il l'est d'après l'erreur retourné par MySQL. J'en déduis que la méthode par référence utilisé pour le transfert du contenu de la variable $query n'est plus supporté avec PHP5 ?

Merci