Switch et if imbriqué

Signaler
Messages postés
10
Date d'inscription
mercredi 3 novembre 2010
Statut
Membre
Dernière intervention
8 décembre 2010
-
Messages postés
10
Date d'inscription
mercredi 3 novembre 2010
Statut
Membre
Dernière intervention
8 décembre 2010
-
Bonjour,

J'ai bien cherché sur le forum avant de vous solliciter
voilà la question :

peut-on mettre un if…elseif… dans un switch

pour fabriquer une référence bibliographique selon la nature (livre revue et mémoire)
tout en imbriquant deux conditions (1 ou 2 noms - ou pas de nom)

----- début ---------
switch ($row_sQl['s_nature'])
{
case 'Livre':
if ($row_sQl['s_nom']!= '')||($row_sQl['s_nom2']!= '') //if ((condition1)||(condition2))
{
$bilio = "$row_sQl['s_nom'].' '.$row_sQl['s_prenom'].' '.$row_sQl['s_nom2'].', '.$row_sQl['s_prenom2'].' ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].' '.$row_sQl['s_lieuedit'].' '.$row_sQl['s_editeur'].'.'";
}
elseif ($row_sQl['s_nom']!='')
{
$biblio = "$row_sQl['s_nom'].' '.$row_sQl['s_prenom'].' ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].' '.$row_sQl['s_lieuedit'].' '.$row_sQl['s_editeur'].'.'";
}
elseif ($row_sQl['s_nom']='')
{
$biblio =' anonyme '.' ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].' '.$row_sQl['s_lieuedit'].' '.$row_sQl['s_editeur'].'.';
}
else
{
$biblio ='---------';


}

break;

case 'Revue':
if ($row_sQl['s_nom']!= '') && ($row_sQl['s_nom2']!='')
{
$bilio = $row_sQl['s_nom'].' '.$row_sQl['s_prenom'].' '.$row_sQl['s_nom2'].', '.$row_sQl['s_prenom2'].' ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].' '.$row_sQl['s_nomrevue'].' n° '.$row_sQl['s_numrevue'].'.';
}
elseif ($row_sQl['s_nom']!='') && ($row_sQl['s_nom2']='')
{
$biblio = $row_sQl['s_nom'].' '.$row_sQl['s_prenom'].' ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].' '.$row_sQl['s_nomrevue'].' n° '.$row_sQl['s_numrevue'].'.';
}
elseif ($row_sQl['s_nom']='')
{
$biblio =' anonyme '.' ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].' '.$row_sQl['s_nomrevue'].' n° '.$row_sQl['s_numrevue'].'.';
}
else
{
$biblio ='---------';
}
break;

case 'Mémoire ESA':
if ($row_sQl['s_nom']!= '')
{
$biblio = $row_sQl['s_nom'].' '.$row_sQl['s_prenom'].' ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].' '.$row_sQl['s_nomrevue'].' n° '.$row_sQl['s_numrevue'].'.';
}
elseif ($row_sQl['s_nom']='')
{
$biblio =' anonyme '.' ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].' '.$row_sQl['s_nomrevue'].' n° '.$row_sQl['s_numrevue'].'.';
}
else
{
$biblio ='---------';
}
break;

break;
case 'Mémoire de thèse':
if ($row_sQl['s_nom']!= '')
{
$biblio = $row_sQl['s_nom'].' '.$row_sQl['s_prenom'].' Mémoire ESA ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].'.';
}
elseif ($row_sQl['s_nom']='')
{
$biblio =' anonyme '.' Mémoire de thèse ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].'.';
}
else
{
$biblio ='---------';
}
break;

default :
if ($row_sQl['s_nom']!= '')
{
$biblio = $row_sQl['s_nom'].' '.$row_sQl['s_prenom'].' Mémoire ESA ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].'.';
}
elseif ($row_sQl['s_nom']='')
{
$biblio =' anonyme '.' Mémoire de thèse ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].'.';
}
else
{
$biblio ='---------';
}
break;
}
------ fin ----------

pour tout vous dire ça ne fonctionne pas!

Gabyte - Angers
------------------
A voir également:

5 réponses

Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
15
BONJOUR

tu as mis deux break qui se suivent

$biblio = '---------';
}
break;

break;
case 'Mémoire de thèse':

essaie comme ça ...

a++



<?php
//----- début --------- 
switch ($row_sQl['s_nature']) 
{ 

case 'Livre': 
   
    if ($row_sQl['s_nom']!= '')||($row_sQl['s_nom2']!= '') //if ((condition1)||(condition2)) 
    { 
    $bilio = "$row_sQl['s_nom'].' '.$row_sQl['s_prenom'].' '.$row_sQl['s_nom2'].', '.$row_sQl['s_prenom2'].' ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].' '.$row_sQl['s_lieuedit'].' '.$row_sQl['s_editeur'].'.'"; 
    } 
    elseif ($row_sQl['s_nom']!='') 
    { 
    $biblio = "$row_sQl['s_nom'].' '.$row_sQl['s_prenom'].' ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].' '.$row_sQl['s_lieuedit'].' '.$row_sQl['s_editeur'].'.'"; 
    } 
    elseif ($row_sQl['s_nom']='') 
    { 
    $biblio =' anonyme   '.' ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].' '.$row_sQl['s_lieuedit'].' '.$row_sQl['s_editeur'].'.'; 
    } 
    else 
    { 
    $biblio  ='---------'; 


} 

break; 

case 'Revue': 

    if ($row_sQl['s_nom']!= '') && ($row_sQl['s_nom2']!='') 
    { 
    $bilio = $row_sQl['s_nom'].' '.$row_sQl['s_prenom'].' '.$row_sQl['s_nom2'].', '.$row_sQl['s_prenom2'].' ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].' '.$row_sQl['s_nomrevue'].' n° '.$row_sQl['s_numrevue'].'.'; 
    } 
    elseif ($row_sQl['s_nom']!='') && ($row_sQl['s_nom2']='') 
    { 
    $biblio = $row_sQl['s_nom'].' '.$row_sQl['s_prenom'].' ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].' '.$row_sQl['s_nomrevue'].' n° '.$row_sQl['s_numrevue'].'.'; 
    } 
    elseif ($row_sQl['s_nom']='') 
    { 
    $biblio =' anonyme   '.' ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].' '.$row_sQl['s_nomrevue'].' n° '.$row_sQl['s_numrevue'].'.'; 
    } 
    else 
    { 
    $biblio  ='---------'; 
    } 

break; 

    case 'Mémoire ESA': 
    
    if ($row_sQl['s_nom']!= '') 
    { 
    $biblio = $row_sQl['s_nom'].' '.$row_sQl['s_prenom'].' ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].' '.$row_sQl['s_nomrevue'].' n° '.$row_sQl['s_numrevue'].'.'; 
    } 
    elseif ($row_sQl['s_nom']='') 
    { 
    $biblio =' anonyme   '.' ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].' '.$row_sQl['s_nomrevue'].' n° '.$row_sQl['s_numrevue'].'.'; 
    } 
    else 
    { 
    $biblio  ='---------'; 
    }
     
    break; 

 
case 'Mémoire de thèse': 

    if ($row_sQl['s_nom']!= '') 
    { 
    $biblio = $row_sQl['s_nom'].' '.$row_sQl['s_prenom'].' Mémoire ESA ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].'.'; 
    } 
    elseif ($row_sQl['s_nom']='') 
    { 
    $biblio =' anonyme   '.' Mémoire de thèse ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].'.'; 
    } 
    else 
    { 
    $biblio  ='---------'; 
    } 

break; 

default : 

    if ($row_sQl['s_nom']!= '') 
    { 
    $biblio = $row_sQl['s_nom'].' '.$row_sQl['s_prenom'].' Mémoire ESA ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].'.'; 
    } 
    elseif ($row_sQl['s_nom']='') 
    { 
    $biblio =' anonyme   '.' Mémoire de thèse ('.$row_sQl['s_annee'].') '.$row_sQl['s_titre'].'.'; 
    } 
    else 
    { 
    $biblio  ='---------'; 
    } 

break; 

} 
?>
Messages postés
10
Date d'inscription
mercredi 3 novembre 2010
Statut
Membre
Dernière intervention
8 décembre 2010

en fait ce qu'il n'aime pas c'est la double condition (excepté le double break)
----- début ----
if ($row_sQl['s_nom']!= '')||($row_sQl['s_nom2']!= '')
----- fin ----

puisque lorsque je n'en mets qu'un, ça fonctionne

Gabyte - Angers
------------------
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
15
j avais pas fait gaffe

if ($row_sQl['s_nom']!= '')||($row_sQl['s_nom2']!= '')
----- fin ----

pourquoi tu ecris pas

if ( $row_sQl['s_nom']!= '' || ($row_sQl['s_nom2']!= '' ) ...

a++
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
15

if ( $row_sQl['s_nom']!= '' || $row_sQl['s_nom2']!= '' ) 


excuses une erreur de frappe au dessus

...

a++
Messages postés
10
Date d'inscription
mercredi 3 novembre 2010
Statut
Membre
Dernière intervention
8 décembre 2010

et bien c'est parfait
merci

si je résume (en dehors d'autres erreurs de syntaxe) il est possible d'imbriquer

des if, elseif, else dans des switch - et inversement


Gabyte - Angers
------------------