[PHP][SQL]Uninitialized string offset, - pourquoi je comprend pas mon erreure ?

bonjour

j’ai une erreure à la ligne en rouge mais je ne comprend pas pourquoi. ou est mon probleme, j’ai oublié de déclarer quelque chose ?

if($_SESSION['Niveau_User'] == 5)
{            $null2='';
            $null='';
             $sql = "SELECT Idx_Rubrique FROM Rubrique ORDER BY Idx_Rubrique DESC LIMIT 1";                                                       
            $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());               
            $data = mysql_fetch_assoc($req);
            $Nb_Enreg_Rubrique=$data['Idx_Rubrique'];
           
                       
            for ($i=1; $i<=$Nb_Enreg_Rubrique; $i++)
            {
                $sql = "select * from Rubrique where Idx_Rubrique='".$i."'";                                               
                $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());       
                $data = mysql_fetch_assoc($req);
                $Nbr=$data['Droit_Modif_User_Rubrique'];
                $Nbr=strlen($Nbr);
                for($j=0; $j<=$Nbr; $j++)
                    {
                    $null=($data['Droit_Modif_User_Rubrique'][$j]);
                   
                    if ($null!=';')
                        {
                        $null2=$null2+$null;
                        }
                    else
                        {
                        $null2='';
                        $null='';
                        }
                    if ( $null2 == $_SESSION['Idx_User'] )
                    {
                    echo('ok <br/> ');
                    }   
                    }
                   
            }
}

Ou est la ligne rouge ? :smiley:

DTC ? :ane:

:MDR

elle est pas passé, j’ai pas reussi a mettre dans le code de la couleur c’est peut etre pas possible.

voila la ligne en question :

$null=($data['Droit_Modif_User_Rubrique'][$j]);

c’est propre et ca fais avancer le debat lol :slight_smile:

euh, null n’est pas un mot réservé en PHP ?
essaye avec un autre nom de variable pour test ?

le mot null est reservé mais pas la variable qui peut s’appeler $Null

humm …

les parenthèses en trop alors peut-être ? :neutre:
(je suis pas encore très bien réveillé là, c’pour ça :D)

Edit : j’ai l’impression que tu t’es pris un peu la tête quand même :oui:

Edit 2 : ce que je comprend du message d’erreur, c’est que :
$data[‘Droit_Modif_User_Rubrique’]

n’est pas une chaine de caractère correctement initializé, et que donc tu ne peux accéder à chacune des lettres la composant directement par son offset :neutre: …

tu peux nous fournir une donnée type contenus dans ce champ ?

sinon tu vas devoir jouer du substr je pense :paf:

j’ai trouvé, j’ai changé pour :

$null=substr($data['Droit_Modif_User_Rubrique'], $j, 1); 

Pourquoi tu me dis qu eje me prend la tete ?

perso, j’aurais explosé la chaine dans un tableau :jap: …

mais bon, ce n’est qu’une technique différente :neutre: …

ha bin vazi j’suis preneur sur ta solution si elle est plus simple

j’suis pas une bete du php…

$null=($data[‘Droit_Modif_User_Rubrique’][$j]);

Cettes syntaxe est fausse

-> $null= $data[‘Droit_Modif_User_Rubrique’]{$j};

Sinon ton problème est simple :


               $sql = "select * from Rubrique where Idx_Rubrique='".$i."'";                                              
               $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());      
               $data = mysql_fetch_assoc($req);
               $Nbr=$data['Droit_Modif_User_Rubrique'];
               $Nbr=strlen($Nbr);
               $sql = "select * from Rubrique where Idx_Rubrique='".$i."'";                                              
               $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());      
               $data = mysql_fetch_assoc($req);
               $Nbr=$data['Droit_Modif_User_Rubrique'];
               $Nbr=strlen($Nbr);

Que se passe-t’il si par mégarde ta requête ne renvoie aucun résultat?
Ca péte.

Je sais pas ce que tu veux faire exactement, mais j’ai l’impression que tu fais des opérations redondantes.

+1 avec Sans-Nom

budy > pas le temps de te faire un bout de code de mon crue, peut-être ce midi si j’ai un peu de timing entre deux bouchées :oui:

merci bien mais si tu peux pas c’est pas grave je continuerai a mon code

  • 1 avec sans nom parce que ! :wink:

:MDR ce code ça fait du bien de rigoler !!!!!!

on devrait faire un bottom 10 des pires codes jamais pondu entre un enchois de pizza en un pet de coca …

j crois qu y a bon la

fait moi plaisir utilise un explode ou un split :wink:

c’est quoi ca explode et split ?

quazar > c’pas malin ton post :neutre: (je reconnais que mon DTC était pas malin non plus [:kramoc]) … je serais curieux de voir ton premier code, qu’on rigole aussi :o [:shy]

budy > explode() permet de “casser” une chaine de caractère en tableau, en fonction d’un caractère … split() fait la même chose, mais avec une expression régulière …

(je vois pas l’intérêt d’explode() ou de preg_split() (split() utilisant les regexp de base, ça doit pas être terrible :wink: même la doc le dit), alors même que vous ne savez pas ce qu’il veut faire?)