Demande de laide en php de type offset

kintokoffi - Modifié par kintokoffi le 15/09/2014 à 12:12
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 15 sept. 2014 à 21:42
Bonjour, mon nom est KINTO koffi,jadore votre communaué
voici mon code je suis un debutant. php m'affiche l'erreur suivant:Notice: Undefined offset: 0 in D:\wamp\www\commerce\panier.php on line 12,veuillez m'aidez merci.cette erreur est survenue lorsque je stock les information dans un tableau de type array().

dans Addcaddi.php jai ce code
<?php
session_start();
if(!isset($_SESSION['panier'])) {
    $panier=$_SESSION['panier'];
  }  else {
     $panier=array() ;
     
  }
$index=count($panier);
$panier['$index']['code']=$_POST['code'];
$panier['$index']['desi']=$_POST['desi'];
$panier['$index']['prix']=$_POST['prix'];
$panier['$index']['quantite']=$_POST['quantite'];
$_SESSION['panier']=$panier;
header('location:index.php?panier=1');


puis dans panier.php j'ai ce code dans panier.php

<?php
session_start();
$panier=$_SESSION['panier'];
?>
<table border="1">
    <tr>
        <th>Designation</th> <th>Prix</th> <th>Quantité</th>
    </tr>
    <?php 
    $total=0;
    for ($i=0;$i<count($panier);$i++){
      $total=$total+$panier[$i]['prix']*$panier[$i]['quantite'];
       ?>
    <tr>
        
         <td><?php echo ($panier[$i]['code']);?></td>
        <td><?php echo ($panier[$i]['designation']);?></td>  
         <td><?php echo ($panier[$i]['prix']);?></td>  
          <td><?php echo ($panier[$i]['quantite']);?></td>  
    </tr>
    <?php }?>
    <tr>
        <td colspan="3">total</td>
        <td><?php echo$total;?></td>
    </tr>
</table>


Edité pour ajout des balises de code.

3 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
15 sept. 2014 à 11:49
Bonjour,

1 - Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
=> J'édite ton message pour les mettre...

2 - Merci de modifier ton titre... car là.. il ne reflète en rien le souci rencontré....

3 - Merci de nous dire exactement quel est ton souci.... car là... tu nous donnes du code... mais tu ne nous dis pas sur quoi tu bloques !


Pour rappel :

Merci de garder à l'esprit que CodeS-SourceS est une communauté d'entraide dans
laquelle toutes les réponses sur le forum sont assurées par des bénévoles
qui donnent de leur temps libre pour aider à résoudre les problèmes.

A noter également que nous ne faisons pas dans le "tout cuit"
et ne sommes pas là pour remplacer votre moteur de recherches...
... Soit tu trouves ton bonheur dans la partie source du site, soit à l'aide de ton moteur de recherche favori.

Ici, nous aidons volontiers sur des sujets techniques précis.

Je t'invite à lire avec attention le contenu du lien suivant :
charte-de-commentcamarche-net : conseils-d-ecriture

Ainsi que celui concernant l'utilisation de la coloration syntaxique :
Utilisation des Balises de code

Merci donc de reformuler ta demande en respectant ces quelques points.

Quelques points essentiels à retenir :
- On ne pose qu' UNE question par discussion
- Le titre de la question doit refléter le souci rencontré ( Help.. SOS.. Urgent.. n'apporte aucune information utile !)
- Lorsque votre question est résolue.. merci de clore le sujet (lien Marquer comme résolu se trouvant sous le titre de votre question).
- Une question obtiendra de meilleurs réponses si elle est correctement rédigée, que les explications sont clairs et qu'éventuellement vous postez le code qui pose problème.
- Si vous avez un message d'erreur..... MARQUEZ LE (dans son intégralité).

Merci.


0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
15 sept. 2014 à 13:00
Bon... tu as édité ton message...
L'erreur est donc :

php m'affiche l'erreur suivant:Notice: Undefined offset: 0 in D:\wamp\www\commerce\panier.php on line 12
,veuillez m'aidez merci.cette erreur est survenue lorsque je stock les information dans un tableau de type array().

Donc ton souci se trouve sur la ligne 12 du fichier panier.php
....
   $total=$total+$panier[$i]['prix']*$panier[$i]['quantite'];

le message t'indique que tu as un problème avec l'offset 0 ... qui est indefini...
C'est à dire... que lorsque $i=0 ... tes variables n'existent pas....

Donc... première chose que tu peux faire (le temps des tests) c'est de faire un PRINT de ta variable pour savoir ce qu'elle contient :
<?php
session_start();

// Utilise ISSET pour t'assurer que ta variable existe
//$panier=$_SESSION['panier'];
$panier=isset($_SESSION['panier'])?$_SESSION['panier']:'error';

// Affichage de la variable le temps des tests :
echo "<br> La variable PANIER contient :<br>";
print_r($panier);


?>



Tu peux aussi, pour éviter les problèmes ajouter un test au moment du calcul pour ne tenir compe que des variables qui "existent" :
<?php 
    $total=0;
    for ($i=0;$i<count($panier);$i++){
     $prix = isset($panier[$i]['prix'])?$panier[$i]['prix']:0;
     $qte = isset($panier[$i]['quantite'])?$panier[$i]['quantite']:0;
   
   //NB :  Pour le total .. la ligne :  $total=$total+$prix*$qte;
   // peut s'écrire plus simplement :
    $total += $prix*$qte;    


?>



0
kintokoffi Messages postés 6 Date d'inscription lundi 15 septembre 2014 Statut Membre Dernière intervention 15 septembre 2014
15 sept. 2014 à 15:50
merci bocou lorsque tout marche sauf que lorsque j'ai fait print_r il a affiché 1.mais n'affiche pas les données
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
15 sept. 2014 à 17:44
merci bocou lorsque tout marche sauf que lorsque j'ai fait print_r il a affiché 1.mais n'affiche pas les données

Je ne comprend pas..... ça marche ou ça ne marche pas ????

j'ai fait print_r il a affiché 1.mais n'affiche pas les données
- Qu'est-ce qui est affiché exactement ????
- Tu peux nous montrer le code que tu as tenté ???
0
kintokoffi Messages postés 6 Date d'inscription lundi 15 septembre 2014 Statut Membre Dernière intervention 15 septembre 2014
Modifié par Whismeril le 15/09/2014 à 21:42
A la ligne 4 du code c'est a dire print_r($panier); affiche 1 mais au nivau tu tableau rien ne s'affiche. merci


voici le code que j'ai tentè suite a votre correction,dans panier.php

<?php
session_start();
$panier= isset($_SESSION['panier']);
echo 'la variable panier contient ';
print_r($panier);
?>
<table border="1">
    <tr>
        <th>Désignation</th> <th>Prix</th> <th>Quantité</th>
    </tr>
    <?php 
    $total=0;
    for ($i=0;$i<count($panier);$i++){
      $prix = isset($panier[$i]['prix'])?$panier[$i]['prix']:0;
     $qte = isset($panier[$i]['quantite'])?$panier[$i]['quantite']:0;
      //$total=$total+$panier[$i]['prix']*$panier[$i]['quantite'];
      $total += $prix*$qte;
       ?>
    <tr>
        
         <td><?php echo($panier[$i]['code']);?></td>
        <td><?php  echo($panier[$i]['designation']);?></td>  
         <td><?php echo($panier[$i]['prix']);?></td>  
          <td><?php echo($panier[$i]['quantite']);?></td>  
    </tr>
     <?php }?>
    <tr>
        <td colspan="3">total</td>
        <td><?php echo$total;?></td>
    </tr>
</table>
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
15 sept. 2014 à 18:39
Soit tu utilises les balises de code pour poster ton code sur le forum. ..soit je ne repond plus et je ferme ta question !!!
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
15 sept. 2014 à 18:57
De plus... regarde ce que j'ai écris comme code...et compare le à celui que tu as écris !!
Tu verras qu'il t'en manque une partie. ..
0
kintokoffi Messages postés 6 Date d'inscription lundi 15 septembre 2014 Statut Membre Dernière intervention 15 septembre 2014
15 sept. 2014 à 19:35
ok excusez le probléme n'est pas resolue il se pose encore le problème de offset a la ligne 22 mais prinr(panier) affiche bien les valeurs: voici l'erreur Notice: Undefined offset: 0 in D:\wamp\www\commerce\panier.php on line 22 .voici la où se situe l'erreur.
 <td><?php echo($panier[$i]['code']);?></td>
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
15 sept. 2014 à 21:04
Et bien. ..tu suis la même logique que pour l'erreur précédente et tu devrais t'en sortir je pense. ..
0
Rejoignez-nous