Page 1 sur 1

erreur php notice

Posté : 19 nov. 2013, 22:45
par damien_55
Bonjour,

J'ai cette expression:
$i = 0;
$events = mysql_query("SELECT event_sale.id as events_id, event_sale.name, event_sale.mediumImage, event_sale.largeImage, DATE(event_sale.validFrom) as start_event, DATE(event_sale.validTo) as end_event, event_sale.merchantCategory, url_event_sale, manufacturer, user_info_pro.url_pro as url_lieu_event
					FROM `event_sale`, `user_info_pro`
					WHERE event_sale.mid_place='".addslashes($_GET['mid'])."'
					AND ((DATE(event_sale.validFrom) <= DATE (NOW()) AND DATE(event_sale.validTo) >= DATE (NOW()) )
	                OR (DATE(event_sale.validFrom) >= DATE (NOW()) AND DATE(event_sale.validTo) >= DATE (NOW()) ))
	                AND extra1=user_info_pro.id_lieu_zanox
					ORDER by event_sale.validTo asc LIMIT 8");
while($event = mysql_fetch_array($events)) {
	$content['events'][$i]['title_event'] = $event['name'];
	$content['events'][$i]['event_pic'] = $event['mediumImage'];
	$content['events'][$i]['event_pic_large'] = $event['largeImage'];
	$content['events'][$i]['category'] = $event['merchantCategory'];
	$content['events'][$i]['start_event'] = $event['start_event'];
	$content['events'][$i]['end_event'] = $event['end_event'];
	$content['events'][$i]['url_event_sale'] = $event['url_event_sale'];
	$content['events'][$i]['manufacturer'] = $event['manufacturer'];
	$content['events'][$i]['url_lieu_event'] = $event['url_lieu_event'];
	$i++;
}
Dans mes log d'erreurs, j'ai une tonne d'erreur, PHP Notice: Undefined index: events in /var/www/vhosts/ ? comment corriger cette erreur ?

Merci de votre aide.

Re: erreur php notice

Posté : 20 nov. 2013, 01:12
par moogli
salut,

Cette erreur est du à l'emploi d'un index de tableau alors que celui ci n'existe pas.
par exemple : echo $truc['un index qui existe pas']

pour éviter cela utile issetou empty(suivant ce que peux contenir l'index comme valeur).


@+

Re: erreur php notice

Posté : 20 nov. 2013, 02:06
par damien_55
Le truc c'est que le tableau existe puisque la varivale appelé existe bien dans ma page.
<?=$content['events'][0]['event_pic_large'];?>
L'image correspondante est bien là. :?

Ou placer ce isset alors ?

Merci

Re: erreur php notice

Posté : 20 nov. 2013, 09:06
par xTG
C'est un problème de déclaration en fait.

Faire ceci :
$array['test'] = "toto";
ne causera pas de warning.
Par contre faire ceci :
$array['test'][0] = "toto";
t'indiquera que l'index test n'existe pas.

Pour palier à cela il faut déclarer $array comme étant un array, ainsi que l'index test.
$array = array();
$array['test'] = array();
$array['test'][0] = "toto";

Re: erreur php notice

Posté : 20 nov. 2013, 13:30
par damien_55
Parfait la méthode xtg :wink:

Il me reste tout de meme une erreur PHP Notice: Undefined offset: 0.

Je ne mets pas résolu, je cherche la solution.

Re: erreur php notice

Posté : 20 nov. 2013, 14:05
par xTG
Je pencherai pour le même problème. ;)

Re: erreur php notice

Posté : 20 nov. 2013, 14:22
par damien_55
Je ne comprend pas ce que tu suggères:

sur mon expression de départ, j'ai modifié comme suit:
$content = array();
$i = 0;
$content['events'] = array();
$events = mysql_query(".....")
while($event = mysql_fetch_array($events)) {
$content['events'][$i]['title_event'] = $event['name'];
..........
$i++;
}
Avant, j'avais une notice sur l'index PHP Notice: Undefined index: events

Maintenant c'est sur les offset. dans ma page template, l'expression est la suivante:
<?=$content['events'][0]['title_event'];?>
Merci de votre aide

Re: erreur php notice

Posté : 20 nov. 2013, 16:25
par moogli
$content['events'][0] n'existe pas
la solution est la même que pour l'event.

@+