By: Mouet
Date: 2006-05-31
Time: 22:45
|
Problèmes avec les array
Voici mon code:
<?php
require_once('INCLUDES/db.inc');
include_once('INCLUDES/tbs_class.php') ;
require_once('INCLUDES/all.class.php');
$links = array('Menu1','Menu2','Menu3','Menu4','Menu5') ;
$TBS = new clsTinyButStrong ;
$TBS->LoadTemplate('I.html') ;
$table = new Nouvelles();
$table->compile();
for($i=1; isset($table->liste[$i]) ; $i++)
{
$myList = $table->liste[$i];
$TBS->MergeBlock('news','array',$myList);
}
$TBS->MergeBlock('menubloc',$links) ;
$TBS->Show() ;
?> |
Cependant sur ma page, il m'affiche TinyButStrong Error in field [news.value...] : item 'res_score' is not an existing key in the array. This message can be cancelled using parameter 'noerr'.
Or, un echo $myList['value']; m'affiche bien la valeur pour cette key dans mon array.
Auriez vous une solution ? j'ai peut-être commis une erreur au niveau de la prog, dans ce cas, veuillez m'en excuser !
Bien à vous, Mouet
|
By: Skrol29
Date: 2006-05-31
Time: 23:11
|
Re: Problèmes avec les array
Il semble que l'un des champs [news.value...] fasse référence à un sous-item de tableau nommé res_score (par exemple ce pourait être [news.value.res_score]), mais que ce sous item est absent lors de la fusion.
Pour savoir où ça pêche vous devez faire non pas un echo($myList['value'])
mais plutôt un var_export($myList).
Remarque sans rapport : le MergeBlock() placé dans un boucle me semble bisarre car il fusionne plusieur fois le même block nommé 'news'; Hors après la première fusion, il ne reste plus de trace de définition du block fusionné.
|
By: Mouet
Date: 2006-05-31
Time: 23:17
|
Re: Problèmes avec les array
Je me suis un peu trompé dans mon énoncé de problèmes ( en effet 2 scripts en meme temps )
Les problèmes sont bien du même rapport: TinyButStrong Error in field [news.Value...] : item 'Value' is not an existing key in the array. This message can be cancelled using parameter 'noerr'.
TinyButStrong Error in field [news.Titre...] : item 'Titre' is not an existing key in the array. This message can be cancelled using parameter 'noerr'.
Et en faisant un echo var_export(); comme vous me l'aviez proscrit, j'obtiens:
array ( 'Nom' => '1', 'Categorie' => '0', 'Titre' => 'Nous allons commencer les tests!', 'Value' => 'Saluuuuuut nounouuuu', 'Date' => '2006-05-30', )array ( 'Nom' => '1', 'Categorie' => '1', 'Titre' => 'Maiiiis', 'Value' => 'Nooon :( Pourquoi? -_-', 'Date' => '2006-05-31', )array ( 'Nom' => '1', 'Categorie' => '0', 'Titre' => 'Toujours pas ? :(', 'Value' => 'Bon, OK !', 'Date' => '2006-05-31', )
Par la suite, mon erreur de block en boucle est une bétise quand j'y pense mais je n'ai pas encore réellement pu lire toute la doc à propos de TBS.
Merci de votre aide
Mouet ( Débutant )
|
By: Mouet
Date: 2006-05-31
Time: 23:25
|
Re: Problèmes avec les array
J'ai en fait résolu le problème comme ca:
<?php
require_once('INCLUDES/db.inc');
include_once('INCLUDES/tbs_class.php') ;
require_once('INCLUDES/all.class.php');
$links = array('Menu1','Menu2','Menu3','Menu4','Menu5') ;
$TBS = new clsTinyButStrong ;
$TBS->LoadTemplate('I.html') ;
$table = new Nouvelles();
$table->compile();
$Nbr = $TBS->MergeBlock('news','array','table->liste') ;
if ($Nbr>0) $TBS->MergeBlock('sb','array','table->liste[%p1%][matches]') ;
$TBS->MergeBlock('menubloc',$links) ;
$TBS->Show() ;
?>
|
Est-ce la meilleur solution?
Bien à vous, mouet
|
By: Skrol29
Date: 2006-05-31
Time: 23:32
|
Re: Problèmes avec les array
Salut Mouet,
Le tableau affiche par var_export() n'a pas la structure attendue pour un MergeBlock().
MergeBlock() a besoin d'un tableau de tableau, hors là si je comprend bien ton $myList contient à chaque boucle un tableau simple.
Je pense que ta boucle sur les éléments de $table->liste est de trop.
Essai de remplacer :
for($i=1; isset($table->liste[$i]) ; $i++)
{
$myList = $table->liste[$i];
$TBS->MergeBlock('news','array',$myList);
}
|
par :
$TBS->MergeBlock('news','array',$table->liste);
|
|
By: Skrol29
Date: 2006-05-31
Time: 23:34
|
Re: Problèmes avec les array
Tu as répondu avant moi :) Oui ta réponse est ok.
|
|
Posting in progress.
Please wait...
|