Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/09/2011, 17h15   #1
Invité régulier
 
Inscription : août 2009
Messages : 181
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 181
Points : 6
Points : 6
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 :
Citation:
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 :
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,
Jinkas est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 16/09/2011, 17h43   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 032
Points : 5 032
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 :
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 ?>
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2011, 11h42   #3
Invité régulier
 
Inscription : août 2009
Messages : 181
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 181
Points : 6
Points : 6
Merci beaucoup!
Jinkas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2011, 17h55   #4
Invité régulier
 
Inscription : août 2009
Messages : 181
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 181
Points : 6
Points : 6
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:

Citation:
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 :
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,
Jinkas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2011, 18h24   #5
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 991
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 2 991
Points : 5 032
Points : 5 032
Code :
<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.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h08.


 
 
 
 
Partenaires

Hébergement Web