Parse error <?php endwhile; else: ?>
Résolu/Fermé
gwenm
Messages postés
594
Date d'inscription
lundi 6 octobre 2008
Statut
Membre
Dernière intervention
17 mai 2024
-
22 janv. 2013 à 12:03
gwenm Messages postés 594 Date d'inscription lundi 6 octobre 2008 Statut Membre Dernière intervention 17 mai 2024 - 22 janv. 2013 à 19:12
gwenm Messages postés 594 Date d'inscription lundi 6 octobre 2008 Statut Membre Dernière intervention 17 mai 2024 - 22 janv. 2013 à 19:12
A voir également:
- Endwhile php
- Easy php - Télécharger - Divers Web & Internet
- \R php ✓ - Forum PHP
- Br php ✓ - Forum PHP
- Expert php - Télécharger - Langages
- Php echo image ✓ - Forum PHP
9 réponses
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
22 janv. 2013 à 12:09
22 janv. 2013 à 12:09
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...)
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
22 janv. 2013 à 12:46
22 janv. 2013 à 12:46
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 ?
gwenm
Messages postés
594
Date d'inscription
lundi 6 octobre 2008
Statut
Membre
Dernière intervention
17 mai 2024
30
22 janv. 2013 à 12:51
22 janv. 2013 à 12:51
Merci pour ces explications clair^^ . J'utilise Notepad ++
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
22 janv. 2013 à 12:56
22 janv. 2013 à 12:56
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à...
gwenm
Messages postés
594
Date d'inscription
lundi 6 octobre 2008
Statut
Membre
Dernière intervention
17 mai 2024
30
22 janv. 2013 à 13:06
22 janv. 2013 à 13:06
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
gwenm
Messages postés
594
Date d'inscription
lundi 6 octobre 2008
Statut
Membre
Dernière intervention
17 mai 2024
30
22 janv. 2013 à 13:07
22 janv. 2013 à 13:07
ce qui correspond à <?php endwhile; else: ?>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
22 janv. 2013 à 14:08
22 janv. 2013 à 14:08
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)
Utilisateur anonyme
22 janv. 2013 à 17:00
22 janv. 2013 à 17:00
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.
gwenm
Messages postés
594
Date d'inscription
lundi 6 octobre 2008
Statut
Membre
Dernière intervention
17 mai 2024
30
22 janv. 2013 à 17:34
22 janv. 2013 à 17:34
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é..
gwenm
Messages postés
594
Date d'inscription
lundi 6 octobre 2008
Statut
Membre
Dernière intervention
17 mai 2024
30
22 janv. 2013 à 18:49
22 janv. 2013 à 18:49
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 ;)
ThEBiShOp
Messages postés
8378
Date d'inscription
jeudi 22 mars 2007
Statut
Contributeur
Dernière intervention
8 février 2021
1 566
22 janv. 2013 à 19:08
22 janv. 2013 à 19:08
Le but c'est pas que le code nous plaise, c'est que ça fonctionne.
Mais essaye de garder nos remarque dans un coin de la tête, ça va te simplifier la vie, et surtout à ceux qui t'aideront le jour où t'auras besoin d'aide ^^
Mais essaye de garder nos remarque dans un coin de la tête, ça va te simplifier la vie, et surtout à ceux qui t'aideront le jour où t'auras besoin d'aide ^^
gwenm
Messages postés
594
Date d'inscription
lundi 6 octobre 2008
Statut
Membre
Dernière intervention
17 mai 2024
30
22 janv. 2013 à 19:12
22 janv. 2013 à 19:12
Oui, je garde bien les remarque, merci encore ;)
22 janv. 2013 à 12:11
22 janv. 2013 à 12:20
22 janv. 2013 à 12:22
C'est quoi exactement ton message d'erreur ?
22 janv. 2013 à 12:25
ce qui correspond à <?php endwhile; else: ?>
22 janv. 2013 à 12:27