mise en forme de mes données php

missblueberry
Invité n'ayant pas de compte PHPfrance

07 févr. 2012, 19:37

bonjour,
j'aimerai mettre en forme les données dynamiques grace à une liste html personnalisé avec du css
voici le premier code que j'ai écrit cela et ça fonctionne

<?php $tab_member = get_post_meta(10, 'member_vip', false);?>

<li><span><?php echo $tab_member[0];?></span></li>
<li><span><?php echo $tab_member[1];?></span></li>
<li><span><?php echo $tab_member[2];?></span></li>
<li><span><?php echo $tab_member[3];?></span></li>
<li><span><?php echo $tab_member[4];?></span></li>
<li><span><?php echo $tab_member[5];?></span></li>
<li><span><?php echo $tab_member[6];?></span></li>
</ul>

le problème vient lorsque j'ai voulu simplifier mon code et introduire une boucle
et là, je suis perdu je n'arrive pas à intégrer ma mise en forme html avec la boucle que j'ai crée

<?php $vip_list = get_post_meta(10, 'member_vip', false);

for($i=0;$i<sizeof($vip_list);$i++)
{
echo $vip_list[$i];
}
?>

pourriez vous m'aidez ?

ViPHP
AB
ViPHP | 5818 Messages

07 févr. 2012, 19:44

Ben oui mais "get_post_meta" n'est pas du php.

Apparemment ce serait du wordpress, t'as pas trouvé ton bonheur dans des forums dédiés wordpress ?

Invité
Invité n'ayant pas de compte PHPfrance

07 févr. 2012, 19:57

exact c'est du wordpress
mais ça ne change pas grand chose puisse que mon problème ne vient pas la fonction get_post_meta qui fonctionne ( je récupère mes infos dans ma variable) et le reste du code la bloucle, echo c'est du php
mon problème c'est que je ne maitrise pas l'écriture php mélangée au html
mais je suis prête à apprendre :lol:
un petit coup de pouce ....

ViPHP
AB
ViPHP | 5818 Messages

07 févr. 2012, 20:07

Ben oui mais je ne sais pas ce que retourne get_post_meta.
Si c'est un tableau faudrait voir sa structure :

Pour voir, faits
<?php $vip_list = get_post_meta(10, 'member_vip', false);
echo '<pre>';
print_r($vip_list);
echo '</pre>';
var_dump($vip_list);
?>
et dis nous ce que cela donne.

Invité
Invité n'ayant pas de compte PHPfrance

07 févr. 2012, 20:13

je peux te le dire sans vérifier
effectivement c'est un tableau qui retourne une série de liens du type
<a href="http://www.fulbright-france.org/" target="_new">Franco-American Commission (France) </a> deja formaté en html.

ViPHP
AB
ViPHP | 5818 Messages

07 févr. 2012, 20:26

Oui mais fais un copié/collé du résultat pour que je visualise mieux la structure du tableau.

Invité
Invité n'ayant pas de compte PHPfrance

07 févr. 2012, 21:00

Array
(
[0] => AIFS-Paris
[1] => American University of Paris (AUP)
[2] => CEA-Paris
[3] => Columbia-Penn Programs in Paris
[4] => Hamilton College-Paris
[5] => New York University in France-Paris
[6] => St. John’s University – Paris
[7] => Stanford University
[8] => University of California, Paris
[9] => Vassar-Wesleyan Program in Paris
)

array(10) { [0]=> string(61) "AIFS-Paris" [1]=> string(68) "American University of Paris (AUP)" [2]=> string(65) "CEA-Paris" [3]=> string(99) "Columbia-Penn Programs in Paris" [4]=> string(110) "Hamilton College-Paris" [5]=> string(104) "New York University in France-Paris" [6]=> string(141) "St. John’s University – Paris" [7]=> string(81) "Stanford University" [8]=> string(69) "University of California, Paris " [9]=> string(116) "Vassar-Wesleyan Program in Paris" }

ViPHP
AB
ViPHP | 5818 Messages

07 févr. 2012, 21:20

<?php 

$tab_member = get_post_meta(10, 'member_vip', false);
$tab_member = is_array($tab_member) && count($tab_member) > 0 ? $tab_member : null;
?>

<!-- html -->
<?php if isset($tab_member))
{ ?>
<ul>
<?php foreach($tab_member as $value)
{
echo '<li><span>'.$value.'</span></li><br />';
} ?>
</ul>
<?php } ?>
Je vois pas trop l'utilité de la balise span. Le br c'est pour les retours lignes, à enlever si besoin.
ça fonctionne comme tu veux ?

Invité
Invité n'ayant pas de compte PHPfrance

07 févr. 2012, 22:34

#-o
non ça plante total
la page ne s'affiche plus ....

ViPHP
AB
ViPHP | 5818 Messages

07 févr. 2012, 22:59

Je vois pas pourquoi. Alors fais des vérifications de tes variables après chaque étape avec var_dump()
$tab_member = get_post_meta(10, 'member_vip', false);
var_dump($tab_member);
$tab_member = is_array($tab_member) && count($tab_member) > 0 ? $tab_member : null;
var_dump($tab_member);

Invité
Invité n'ayant pas de compte PHPfrance

07 févr. 2012, 23:03

j'ai réussi
Aprés moult essais
je me suis aidé de ton code que je n'ai pas tout compris j'avoue et j'ai repris mon code de départ
j'ai fait une petite correction dans l'écriture
et ça marche =D>
Victoire !!!!!
mille fois merci
Voici la correction:

<ul id= "Members">

<?php $tab_member = get_post_meta(10, 'member_vip', false);

for($i=0;$i<6;$i++) // tant que $i est inferieur au nombre d'éléments du tableau...
{
echo '<li><span>'.$tab_member[$i].'</span></li>';
}
?>

</ul>

ViPHP
AB
ViPHP | 5818 Messages

07 févr. 2012, 23:36

Du devrais reprendre ce code mais utiliser foreach car c'est la fonction dédiée pour lister la totalité d'un tableau (sans avoir à connaître le nombre d'éléments) :wink: