IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Warning: Invalid argument supplied for foreach() in


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 273
    Par défaut Warning: Invalid argument supplied for foreach() in
    Bonjour,

    J'ai installé Joomla en local avec WampServer Version 2.1 - php 5.3.5 - mysql 5.5.8. J'ai aussi installé un module qui est censé m'afficher un tableau (dates + heures) ce tableau est rempli à l'aide d'un fichier csv que j'upload par le biais du module. Le problème est que s'il n'y a pas de données à afficher et que le module est activé, j'obtiens l'erreur suivante :
    Warning: Invalid argument supplied for foreach() in C:\wamp\www\modules\mod_joomla\tmpl\tablethree.php on line 5
    Voici le contenu du fichier tablethree.php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <?php 
    // no direct access
    defined( '_JEXEC' ) or die( 'Restricted access' ); ?>
    <table style="border-width: 0px; width: 100%">
    <?php foreach ($items as $item) : ?>
    	<tr>
        <td>
          <span title="<?php echo JText::_( 'COL1' ); ?>"><?php echo JText::_( 'COL1' ); ?></span>
        </td>  
        <td>
          <span title="<?php echo JText::_( 'COL2' ); ?>"><?php echo JText::_( 'COL2' ); ?></span>
        </td>  
        <td>
          <span title="<?php echo JText::_( 'COL3' ); ?>"><?php echo JText::_( 'COL3' ); ?></span>
        </td>
        <td>
          <span title="<?php echo JText::_( 'COL4' ); ?>"><?php echo JText::_( 'COL4' ); ?></span>
        </td>
        <td>
          <span title="<?php echo JText::_( 'COL5' ); ?>"><?php echo JText::_( 'COL5' ); ?></span>
        </td>
      </tr>
     
      <tr>
        <td>
          <span title="<?php echo $item->col1?>"><?php echo $item->col1?></span>
        </td>
        <td>
          <span title="<?php echo $item->col2?>"><?php echo $item->col2?></span>
        </td>  
        <td>
          <span title="<?php echo $item->col3?>"><?php echo $item->col3?></span>
        </td>  
        <td>
          <span title="<?php echo $item->col4?>"><?php echo $item->col4?></span>
        </td>
        <td>
          <span title="<?php echo $item->col5?>"><?php echo $item->col5?></span>
        </td>
      </tr>
    <?php endforeach; ?>
    </table>
    Que pourrais-je ajouter dans le code pour éviter ce message d'erreur et afficher un message à la place par exemple no data found?

    Merci,

  2. #2
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Hello

    Déjà tu devrais mettre
    au début du script pour résoudre le problème de porté.

    Ensuite, c'est simple, pour tester que $items n'est pas vide il suffit de mettre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php if (!empty($items)): ?>
    <?php foreach ($items as $item):?>
    ...
    <?php endforeach ?>
    <?php else: ?>
    La liste est vide
    <?php endif ?>

  3. #3
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 273
    Par défaut
    Merci beaucoup!

  4. #4
    Membre éclairé
    Inscrit en
    Août 2009
    Messages
    273
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 273
    Par défaut
    Désolé d'avoir réactivé cette discussion mais je voudrais vous informer que ça ne marche pas avec mais bien sans.

    Sinon, je voudrais ajouter une image de fond à mon tableau qui prend toute la taille du tableau et changer la police des données affichées en utilisant un fichier css. Le fichier css devrait se trouver dans le même répertoire que le fichier php.

    J'ai essayé un truc pareil:

    mon_fichier.css:

    table {
    border-width:1px;
    border-style:solid;
    border-color:white;
    background: url(../images/mon-image.png)
    }
    td {
    border-width:1px;
    border-style:solid;
    border-color:red;
    }
    et mon_fichier.php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php 
    // no direct access
    defined( '_JEXEC' ) or die( 'Restricted access' ); ?>
    <table class="mon_fichier.css" style="border-width: 0px; width: 100%">
    <?php foreach ($items as $item) : ?>
    mais ça ne donne rien! ???

    Merci,

  5. #5
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <table class="mon_fichier.css" style="border-width: 0px; width: 100%">
    Qu'est ce que c'est sensé vouloir dire cette valeur de l’attribut class ??

    Pour mémoire: charger une feuille de style externe se fait avec la balise <link /> et non pas en spécifiant le fichier à charger dans l'attribut class.

Discussions similaires

  1. Warning: Invalid argument supplied for foreach()
    Par destigul dans le forum Langage
    Réponses: 4
    Dernier message: 02/05/2015, 23h09
  2. PROBLEEM Warning: Invalid argument supplied for foreach()
    Par kapitcho dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/06/2012, 00h20
  3. [MySQL] Problème de Foreach : Warning: Invalid argument supplied for foreach()
    Par bidoo1234 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 06/05/2010, 17h56
  4. Warning: Invalid argument supplied for foreach()
    Par billyrose dans le forum Langage
    Réponses: 1
    Dernier message: 27/02/2009, 15h36
  5. Réponses: 11
    Dernier message: 19/05/2006, 11h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo