Erreur de tableau
Résolujordane45 Messages postés 30427 Date d'inscription Statut Modérateur Dernière intervention -
$matrice[$donneeseffect][0] = $donneeseffect;
if($donneestag==1){
$matrice[$donneeseffect][1] = $matrice [$donneeseffect] [1] +1;
}
if($donneestag==2){
$matrice[$donneeseffect][2] = $matrice [$donneeseffect] [2] +1;
}
if($donneestag==5){
$matrice[$donneeseffect][3] = $matrice [$donneeseffect] [3] +1;
}
if($donneestag==6){
$matrice[$donneeseffect][4] = $matrice [$donneeseffect] [4] +1;
}
EDIT : Ajout des balises de code
voici mon code : il m'indique Warning: Illegal offset
mais quesqu'y vas pas
merci de votre attention
4 réponses
Un problème PHP porte sur l'initialisation et l'incrémentation d'un tableau multidimensionnel lors de l'enregistrement d'indices dans une matrice, et sur l'apparition d'un avertissement 'Warning: Illegal offset'. Des réponses proposées recommandent d'initialiser le tableau avec array_fill, par exemple $matrice = array_fill(1, $nbLignes, array(0, 0, 0, 0)); afin d'éviter des offsets inexistants potentiels. D'autres échanges suggèrent de clarifier l'initialisation et de vérifier la manière dont les indices 1 à 4 sont référencés, et d'utiliser des affichages pour diagnostiquer les valeurs. En complément, une approche avec PDO et gestion des erreurs peut aider à diagnostiquer d'autres cas comme des requêtes non sécurisées et améliorer la robustesse du code.
-
Bonjour,
Où as tu initialisé ton array $matrice ?
De quelle manière ?
-
-
Donc... ta matrice ressemble à ça :
Array ( [1] => Array ( [0] => 0 [1] => 4 [2] => 0 ) [2] => Array ( [0] => 0 [1] => 4 [2] => 0 ) [3] => Array ( [0] => 0 [1] => 4 [2] => 0 ) )
.. comme tu peux le voir .. les "indexes" commencent à ZERO et non à 1 .... (et vont jusqu'à 2 )
Doncif($donneestag==5){ $matrice[$donneeseffect][3] = $matrice [$donneeseffect] [3] +1; } if($donneestag==6){ $matrice[$donneeseffect][4] = $matrice [$donneeseffect] [4] +1;
Ne peuvent pas fonctionner.... 3 et 4 sont en dehors de la dimension de ton array -
-
-
Bonjour,
Tout d'abord, inspire-toi de ça : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
-
-
oups dsl lu un peut tros vite : voici l'erreur maintenant :
Warning: Illegal offset type in /Users/alainmeo/Desktop/base.php on line 65
Warning: Illegal offset type in /Users/alainmeo/Desktop/base.php on line 65
Warning: Illegal offset type in /Users/alainmeo/Desktop/base.php on line 65
Warning: Illegal offset type in /Users/alainmeo/Desktop/base.php on line 65
Notice: Undefined offset: 0 in /Users/alainmeo/Desktop/base.php on line 94
0
Notice: Undefined offset: 0 in /Users/alainmeo/Desktop/base.php on line 94
0
Notice: Undefined offset: 0 in /Users/alainmeo/Desktop/base.php on line 94
0
Notice: Undefined offset: 0 in /Users/alainmeo/Desktop/base.php on line 94
0
Notice: Undefined offset: 0 in /Users/alainmeo/Desktop/base.php on line 94
0
Notice: Undefined offset: 1 in /Users/alainmeo/Desktop/base.php on line 94
0
Notice: Undefined offset: 1 in /Users/alainmeo/Desktop/base.php on line 94
0
Notice: Undefined offset: 1 in /Users/alainmeo/Desktop/base.php on line 94
0
Notice: Undefined offset: 1 in /Users/alainmeo/Desktop/base.php on line 94
0
Notice: Undefined offset: 1 in /Users/alainmeo/Desktop/base.php on line 94
0
Notice: Undefined offset: 2 in /Users/alainmeo/Desktop/base.php on line 94
0
Notice: Undefined offset: 2 in /Users/alainmeo/Desktop/base.php on line 94
0
Notice: Undefined offset: 2 in /Users/alainmeo/Desktop/base.php on line 94
0
Notice: Undefined offset: 2 in /Users/alainmeo/Desktop/base.php on line 94
0
Notice: Undefined offset: 2 in /Users/alainmeo/Desktop/base.php on line 94
0
-
-
le script en entier :
<?php //$pass = "root"; //$user = "root"; //$host = "localhost"; error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); try { $bdd = new PDO('mysql:linux_socket=/Applications/MAMP/tmp/mysql/mysql.sock;host=127.0.0.1;port=8889;dbname=teste','root','root'); //;charset=utf8 //$user = 'root'; //$password = 'root'; //$db = 'teste'; //$host = 'localhost'; //$port = 8889; //$link = mysqli_init(); //$success = mysqli_real_connect( //$link, //$host, //$user, //$password, //$db, // $port //); // $user = 'root'; //$password = 'root'; //$db = 'inventory'; //$host = '127.0.0.1'; //$port = 8889; //$socket = 'localhost:/Applications/MAMP/tmp/mysql/mysql.sock'; //$link = mysqli_init(); //$success = mysqli_real_connect( // $link, //$host, //$user, //$password, //$db, //$port, //$socket //); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } //$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //$compteur = 0; $nbLignes = $bdd->query('select count(*) from maTable'); // ou nb d'effect $matrice = array_fill ( 1 , $nbLignes , array(0 , 4 , "0" )); $reponcetag = $bdd->query('SELECT ID_tag FROM vote_tag_effect'); $reponceuser = $bdd->query('SELECT ID_user FROM vote_tag_effect'); $reponseeffect = $bdd->query('SELECT ID_effect FROM vote_tag_effect'); while ($donneeseffect = $reponseeffect->fetch()){ while ($donneesuser = $reponceuser->fetch()){ while ($donneestag = $reponcetag->fetch()){ $matrice[$donneeseffect][0] = $donneeseffect; if($donneestag==1){ $matrice[$donneeseffect][1] = $matrice [$donneeseffect] [1] +1; } if($donneestag==2){ $matrice[$donneeseffect][2] = $matrice [$donneeseffect] [2] +1; } if($donneestag==5){ $matrice[$donneeseffect][3] = $matrice [$donneeseffect] [3] +1; } if($donneestag==6){ $matrice[$donneeseffect][4] = $matrice [$donneeseffect] [4] +1; } //$compteur = $compteur +1; } } } $bdd = null; $nbdeffect=3; for ($i=0;$i<$nbdeffect;$i++) { for ($j=0;$j<=4;$j++){ printf("%b",$matrice[$i][$j]); } print("\n"); //print_r($matrice) } ?>
EDIT : AJout des balises de code (encore.......!!! )-
-
Je ne comprend pas l'intéret de faire 3 requêtes sur la même table... alors qu'une seule suffit
$reponcetag = $bdd->query('SELECT ID_tag FROM vote_tag_effect'); $reponceuser = $bdd->query('SELECT ID_user FROM vote_tag_effect'); $reponseeffect = $bdd->query('SELECT ID_effect FROM vote_tag_effect');
$tesDatas = $bdd->query('SELECT ID_tag, ID_user,ID_effect FROM vote_tag_effect'); -
-
-
-