Erreur Undefined index

Résolu
Bonjour,

J'ai besoin d'aide. Je vous explique...
J'ai fait sur ma base de donnée
ALTER TABLE produits ADD images_alt text NOT NULL;
tout c'est bien passé

Sur une autre page

Apres avoir fait la connexion avec la base de donnée, je fais un echo du champs images_alt
<?php echo $donnees['images_alt']; ?>

J'ai cette erreur:
Notice: Undefined index: images_alt in C:\wamp\www\monsite\XXX\modifier.php on line 126 Call Stack #TimeMemoryFunctionLocation 10.0007719384{main}( )..\modify.php:0

j'ai essayé de faire isset(...), mais à part retirer le message, rien n'est echo alors qu'il y a des données dans la base.

Dans le fond c'est qu'il ne trouve tout simplement pas le champs images_alt.
Ais-je mal fait le ALTER TABLE? ou il y a t-il un autre probleme?

Je suis débutant, donc si on pouvait m'indiquer la réponse et m'expliquer aussi, ce serait génial.
Merci

6 réponses

  1. Bonjour,

    Tu as modifié ta table Produit, et tu fais ta requête sur ta table Images...

    Xavier
    2
    1. très bon ;)
      0
  2. il nous faudrait ta requete ou tu place dans donnees le retour de l'array de ta table (vu que tu dois faire un select, puis un fetch_array)
    1
    1. bonjour,
      Déjà vous pouvez faire un SELECT * depuis un client SQL comme phpMyAdmin par exemple pour voir effectivement si la colonne est présente (et bien déclarée, renseignée...).

      Ensuite il y a la commande php suivante qui peut être sympa : bool array_key_exists ( mixed $key , array $search )

      ici çà donnerai :
      <?php 
        $donneeImgAlt = (array_key_exists('images_alt', $donnees) ? $donnees['images_alt'] : '');
       ?> 
      

      puis plus loin (par exemple au sein d'une balise IMG ... :
      <?php echo $donneeImgAlt; ?> 
      
      1
      1. Quelle requête fais-tu pour récupérer ces données ?
        0
        1. Je fais comme ça.

          <?php
          include("includes/identification.php");

          // On protège la variable "modifier_image" pour éviter une faille SQL
          $id = mysql_real_escape_string(htmlspecialchars($_GET['idmodif']));

          // On récupère les infos de l'image correspondante
          $retour = mysql_query("SELECT * FROM images WHERE image_id= '$idmodif'");
          if(mysql_num_rows($retour)>0) {
          while ($donnees = mysql_fetch_array($retour))
          {
          ?>

          <?php echo $donnees['images_alt']; ?>

          <?php echo $donnees['images_name']; ?>
          <?php echo $donnees['images_color']; ?>

          <?php
          }
          }
          ?>

          Tout les autres echo marche sauf celui de images_alt
          Comme c'est le seul que j'ai rajouté en faisant AlTER TABLE, je me suis demandé si c'était pas à cause de ça.
          Si je l'avais pas mal fait ou je ne sais pas.

          Merci de m'aider
          0
          1. Merci pour votre réponse après avoir été sur phpMyAdmin, j'ai remarqué que la colonne n'était tout simplement pas créée.
            Je l'ai créé à partir de phpMyAdmin et ça marche !

            Merci boly et Reivax962

            Reivax962 voilà pourquoi je ne l'ai pas trouvé lol
            Je ferai plus attention

            merci à vous tous.
            0