erreur php notice

Mammouth du PHP | 504 Messages

19 nov. 2013, 22:45

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.

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

20 nov. 2013, 01:12

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).


@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 504 Messages

20 nov. 2013, 02:06

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

ViPHP
xTG
ViPHP | 7331 Messages

20 nov. 2013, 09:06

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";

Mammouth du PHP | 504 Messages

20 nov. 2013, 13:30

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.

ViPHP
xTG
ViPHP | 7331 Messages

20 nov. 2013, 14:05

Je pencherai pour le même problème. ;)

Mammouth du PHP | 504 Messages

20 nov. 2013, 14:22

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

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

20 nov. 2013, 16:25

$content['events'][0] n'existe pas
la solution est la même que pour l'event.

@+
Il en faut peu pour être heureux ......