Comment supprimer les Undefined offset

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Comment supprimer les Undefined offset

Re: Comment supprimer les Undefined offset

par moogli » 06 déc. 2016, 09:30

@Spols : a vu de nez c'est le second qui pose problème le premier venant de la requête sql il y a peu de chance qu'il ne soit pas fournit (même cela est le comportement par défaut des fonction oracle je ne crois que cela soit le cas pour PDO, en tout cas cela ne m'est jamais arrivé :) )

@+

Re: Comment supprimer les Undefined offset

par Spols » 06 déc. 2016, 09:18

Pour éviter ce type d'erreur, tu dois tester l’existence de l'index dans ton tableau avant de l'utiliser avec isset() ou empty()

je suppose un truc de ce genre
<?php
    $loisir_localisation = "SELECT DISTINCT id_region FROM loisirs WHERE genre_loisir = '".$_GET['loisir']."'";
    $req = $bdd->query($loisir_localisation);           
    while($ligne = $req->fetch(PDO::FETCH_ASSOC)){                                 
    if (isset($ligne['id_region']) && $aRegion[$ligne['id_region']] ) {
echo '<li><a href="/idclick/sortie/region-'.simplification($aRegion[$ligne['id_region']]).'/activie-'.simplification($_GET['loisir']).'.html">'.ucfirst(strtolower($aRegion[$ligne['id_region']])).'</li>';    
}	
    }
  ?>

Re: Comment supprimer les Undefined offset

par moogli » 06 déc. 2016, 09:15

salut,

undefined offset => l'index n'existe pas dans le tabeau => du coup faut pas l'utiliser :-)

les fonctions isset ou empty t'aideront à tester l’existence de l'index dans ton tableau.
Si celui ci n'existe pas il ne faut pas l'utiliser, d'ailleurs si la donnée n'existe pas il faut traiter la chose correctement avec un message par défaut ou quelque chose du genre.

@+

Comment supprimer les Undefined offset

par blinz » 05 déc. 2016, 22:47

Salut, salut
Comment supprimer les undefined offset.

Dans mes requetes le resultat retourné est parfois le numéro 60 par exemple ou 0 ou autre encore et biensur il n'existe pas en bdd.
Pour diverseraison je ne peut les supprimer de la bdd, mais lors de l'appel de ma requete j'aimerais éviter que ces fameux :
Notice: Undefined offset: 75 apparaissent.
Voici une de mes requetes:
<?php
    $loisir_localisation = "SELECT DISTINCT id_region FROM loisirs WHERE genre_loisir = '".$_GET['loisir']."'";
    $req = $bdd->query($loisir_localisation);           
    while($ligne = $req->fetch(PDO::FETCH_ASSOC)){                                 
    echo '<li><a href="/idclick/sortie/region-'.simplification($aRegion[$ligne['id_region']]).'/activie-'.simplification($_GET['loisir']).'.html">'.ucfirst(strtolower($aRegion[$ligne['id_region']])).'</li>';    	
    }
	?>
Merci à vous