Parse error <?php endwhile; else: ?>
Résolu
gwenm
Messages postés
594
Date d'inscription
Statut
Membre
Dernière intervention
-
gwenm Messages postés 594 Date d'inscription Statut Membre Dernière intervention -
gwenm Messages postés 594 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'arrive pas à me dépatouiller d' une parse error avec la fonction
Je sais qu' il faut un 'while' pour avoir un 'endwhile;' et j'ai bien ca dans mon code:
Merci pour votre aide^^
J'arrive pas à me dépatouiller d' une parse error avec la fonction
<?php endwhile; else: ?>
Je sais qu' il faut un 'while' pour avoir un 'endwhile;' et j'ai bien ca dans mon code:
<?php echo category_description( $category_id ); ?> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <?php $cats = get_categories(); foreach ($cats as $cat) { query_posts('showposts=10&cat=718-CATEGORIE'.$cat->cat_ID); ?> <div class="article4"> <?php the_excerpt(); ?> </div> <?php endwhile; else: ?> <p><?php _e('Sorry, no posts matched your criteria.'); ?></p><?php endif; ?> <p><?php if(function_exists('wp_simple_pagination')) { wp_simple_pagination(); } ?>
Merci pour votre aide^^
A voir également:
- Endwhile php
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
9 réponses
Même si cette syntaxe existe, de mon point de vue elle est à éviter, parce que ça devient rapidement bordélique...
pour les while, il vaut mieux utiliser la syntaxe suivante :
de même pour les if, elseif...
c'est bien plus lisible et plus facile à débugger (mais ça ne reste que mon point de vue...)
pour les while, il vaut mieux utiliser la syntaxe suivante :
while (condition) { //code }
de même pour les if, elseif...
if (condition) { //code } elseif (conditon2) { //code } else { //code }
c'est bien plus lisible et plus facile à débugger (mais ça ne reste que mon point de vue...)
Oui, quelque chose comme ça doit marcher.
Pour te rendre le code plus lisible, utilise l'indentation, les boucles et les conditions sont à voir comme des bulles qui contiennent d'autres bulles et le fait de les indenter permet de les apercevoir rapidement.
en n'oubliant pas que lorsque tu mets une accolade ouvrante, elle doit se fermer. Pour ne pas les oublier, l'idéal est de l'ouvrir, puis la fermer tout de suite, et ensuite écrire ton code à l'intérieur.
D'ailleurs la plupart des logiciels IDE le font automatiquement.
Tu écris ton code avec quel logiciel ?
Pour te rendre le code plus lisible, utilise l'indentation, les boucles et les conditions sont à voir comme des bulles qui contiennent d'autres bulles et le fait de les indenter permet de les apercevoir rapidement.
if (have_posts()) { while (have_posts()) { the_post(); }
en n'oubliant pas que lorsque tu mets une accolade ouvrante, elle doit se fermer. Pour ne pas les oublier, l'idéal est de l'ouvrir, puis la fermer tout de suite, et ensuite écrire ton code à l'intérieur.
D'ailleurs la plupart des logiciels IDE le font automatiquement.
Tu écris ton code avec quel logiciel ?
D'accord
normalement quand tu places ton curseur sur une accolade ouvrante ou fermante, ça te signale en couleur son opposée qui lui correspond, comme ça tu peux voir facilement s'il t'en manque une.
Voilà voilà...
normalement quand tu places ton curseur sur une accolade ouvrante ou fermante, ça te signale en couleur son opposée qui lui correspond, comme ça tu peux voir facilement s'il t'en manque une.
Voilà voilà...
ca marche pas pour les accolades, mais que pour les <div> ...
Maintenant mon code est:
Et toujours la parse error:
Maintenant mon code est:
<?php echo category_description( $category_id ); ?> if (have_posts()) { while (have_posts()) { the_post(); } <?php $cats = get_categories(); foreach ($cats as $cat) { query_posts('showposts=10&cat=718-CATEGORIE'.$cat->cat_ID); ?> <div class="article4"> <?php the_excerpt(); ?> </div> <?php endwhile; else: ?> <p><?php _e('Sorry, no posts matched your criteria.'); ?></p><?php endif; ?>
Et toujours la parse error:
Parse error: syntax error, unexpected T_ENDWHILE in /web/doclibre/www/wp-content/themes/lifestyle_20/category.php on line 36
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Comme je le disais un peu plus tot, le while s'écrit comme ça :
l'accolade fermante correspond au endwhile
le else : doit aussi disparaître pour se conformer à la syntaxe que j'ai cité plus haut.
les balises php ne doivent pas s'ouvrir ni se fermer à tout bout de champ.
On l'ouvre au début avec <?php et ferme avec ?> quand on a plus de code php à ajouter (ce qui correspond souvent au début/fin de fichier, tout simplement)
while (condition) { //code }
l'accolade fermante correspond au endwhile
le else : doit aussi disparaître pour se conformer à la syntaxe que j'ai cité plus haut.
les balises php ne doivent pas s'ouvrir ni se fermer à tout bout de champ.
On l'ouvre au début avec <?php et ferme avec ?> quand on a plus de code php à ajouter (ce qui correspond souvent au début/fin de fichier, tout simplement)
Bonjour
J'ai bien l'impression que depuis le début, la seule chose qui manque c'est l'accolade de fin du foreach }
C'est pour ça qu'il y a une erreur sur le endwhile : on n'est pas encore sorti du foreach.
J'ai bien l'impression que depuis le début, la seule chose qui manque c'est l'accolade de fin du foreach }
C'est pour ça qu'il y a une erreur sur le endwhile : on n'est pas encore sorti du foreach.
J'ai changé mon code comme ceci :
et la parse error est descendu à la ligne 38 soit:
J'ai alors changé par:
et maintenant l'erreur vient de
<?php echo category_description( $category_id ); ?> if (have_posts()) { while (have_posts()) { the_post(); } <?php $cats = get_categories(); foreach ($cats as $cat) { query_posts('showposts=10&cat=718-CATEGORIE'.$cat->cat_ID); ?> <div class="article4"> <?php the_excerpt(); ?> </div> endwhile; { else: } <p><?php _e('Sorry, no posts matched your criteria.'); ?></p><?php endif; ?>
et la parse error est descendu à la ligne 38 soit:
<p><?php _e('Sorry, no posts matched your criteria.'); ?></p><?php endif; ?>
J'ai alors changé par:
<p>_e('Sorry, no posts matched your criteria.'); { pendif; }
et maintenant l'erreur vient de
<?php get_footer(); ?>et la je suis bloqué..
Ok, j'ai réussi, le code final est:
@ThEBiShOp et @fjbvqlkjhv, le code va pas vous plaire mais le principale est que j' ai réussi au bout de 48 h (quand même!) à faire ce que je voulais..je vous remercie de vous êtes penché sur mon problème ;)
Merci à toi aussi Le père ;)
<?php get_header(); ?> <div id="content"> <div id="contentleft"> <div class="postarea3"> <?php include(TEMPLATEPATH."/breadcrumb.php");?> <?php echo category_description( $category_id ); ?> <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <?php get_the_category_by_ID( 718 ); ?> <div class="article4"> <?php the_excerpt(); ?> </div> <?php endwhile; else: ?> <p><?php _e('Sorry, no posts matched your criteria.'); ?></p><?php endif; ?> <p><?php if(function_exists('wp_simple_pagination')) { wp_simple_pagination(); } ?></p> </div> </div> <?php include(TEMPLATEPATH."/sidebar.php");?> </div> <!-- The main column ends --> <?php get_footer(); ?>
@ThEBiShOp et @fjbvqlkjhv, le code va pas vous plaire mais le principale est que j' ai réussi au bout de 48 h (quand même!) à faire ce que je voulais..je vous remercie de vous êtes penché sur mon problème ;)
Merci à toi aussi Le père ;)
C'est quoi exactement ton message d'erreur ?
ce qui correspond à <?php endwhile; else: ?>