Boucle Switch
ellocodu59
-
ellocodu59 -
ellocodu59 -
Bonjour,
J'ai un petit problème par rapport à ma boucle switch : elle n'exécute pas les actions des différents cas mais va directement au "default". La requête du "default" marche très bien et les autres cas ne s'exécutent pas alors que la requête est la même ! Quand je clique sur les différents liens la page affiche toujours le résultat de la requête "default".
Avez-vous une idée? Merci.
Je vous donne mon code :
<?php
include("php/connexion.php");
$id = $_GET['ID'];
$requete = "SELECT * FROM trombi WHERE ID=\"".$id."\" ";
$result = mysql_db_query($bdd, $requete);
$donnees = mysql_fetch_array($result);
/* Requête pour sélectionner la matière choisie*/
$matiere = $_GET["matiere"];
switch ($matiere){
case 1:
$requete2 = "SELECT * FROM adm_blog WHERE matiere='flash' ORDER BY id";
break;
case 2:
$requete2 = "SELECT * FROM adm_blog WHERE matiere='illustrator' ORDER BY id";
break;
case 3:
$requete2 = "SELECT * FROM adm_blog WHERE matiere='photoshop' ORDER BY nom";
break;
case 4:
$requete2 = "SELECT * FROM adm_blog WHERE matiere='compoimages' ORDER BY nom";
break;
case 5:
$requete2 = "SELECT * FROM adm_blog WHERE matiere='aftereffects' ORDER BY nom";
break;
case 6:
$requete2 = "SELECT * FROM adm_blog WHERE matiere='sketchup' ORDER BY nom";
break;
case 7:
$requete2 = "SELECT * FROM adm_blog WHERE matiere='3dsmax' ORDER BY nom";
break;
case 8:
$requete2 = "SELECT * FROM adm_blog WHERE matiere='maya' ORDER BY nom";
break;
case 9:
$requete2 = "SELECT * FROM adm_blog WHERE matiere='films' ORDER BY nom";
break;
default:
$requete2 = "SELECT * FROM adm_blog WHERE matiere='flash' ORDER BY id";
}
$result2 = mysql_db_query($bdd, $requete2);
$donnees2 = mysql_fetch_array($result2);
?>
Et les liens correspondants :
<div id="typematiere">
<img src="image/PageBlog/onglet.jpg"/> <?php echo "<a href=\"blog.php?ID=".$donnees["ID"]."&matiere=flash\" >";?>FLASH</a><br/><br/>
<img src="image/PageBlog/onglet.jpg"/> <?php echo "<a href=\"blog.php?ID=".$donnees["ID"]."&matiere=illustrator\" >";?>ILLUSTRATOR</a><br/><br/>
<img src="image/PageBlog/onglet.jpg"/> <?php echo "<a href=\"blog.php?ID=".$donnees["ID"]."&matiere=photoshop\" >";?>PHOTOSHOP</a><br/><br/>
<img src="image/PageBlog/onglet.jpg"/> <?php echo "<a href=\"blog.php?ID=".$donnees["ID"]."&matiere=compoimages\" >";?>COMPO-IMAGES</a><br/><br/>
<img src="image/PageBlog/onglet.jpg"/> <?php echo "<a href=\"blog.php?ID=".$donnees["ID"]."&matiere=aftereffects\" >";?>AFTER-EFFECTS</a><br/><br/>
<img src="image/PageBlog/onglet.jpg"/> <?php echo "<a href=\"blog.php?ID=".$donnees["ID"]."&matiere=sketchup\" >";?>SKETCHUP</a><br/><br/>
<img src="image/PageBlog/onglet.jpg"/> <?php echo "<a href=\"blog.php?ID=".$donnees["ID"]."&matiere=3dsmax\" >";?>3 DS MAX</a><br/><br/>
<img src="image/PageBlog/onglet.jpg"/> <?php echo "<a href=\"blog.php?ID=".$donnees["ID"]."&matiere=maya\" >";?>MAYA</a><br/><br/>
<img src="image/PageBlog/onglet.jpg"/> <?php echo "<a href=\"blog.php?ID=".$donnees["ID"]."&matiere=films\" >";?>FILMS FIN D'ANNEE</a>
</div>
J'ai un petit problème par rapport à ma boucle switch : elle n'exécute pas les actions des différents cas mais va directement au "default". La requête du "default" marche très bien et les autres cas ne s'exécutent pas alors que la requête est la même ! Quand je clique sur les différents liens la page affiche toujours le résultat de la requête "default".
Avez-vous une idée? Merci.
Je vous donne mon code :
<?php
include("php/connexion.php");
$id = $_GET['ID'];
$requete = "SELECT * FROM trombi WHERE ID=\"".$id."\" ";
$result = mysql_db_query($bdd, $requete);
$donnees = mysql_fetch_array($result);
/* Requête pour sélectionner la matière choisie*/
$matiere = $_GET["matiere"];
switch ($matiere){
case 1:
$requete2 = "SELECT * FROM adm_blog WHERE matiere='flash' ORDER BY id";
break;
case 2:
$requete2 = "SELECT * FROM adm_blog WHERE matiere='illustrator' ORDER BY id";
break;
case 3:
$requete2 = "SELECT * FROM adm_blog WHERE matiere='photoshop' ORDER BY nom";
break;
case 4:
$requete2 = "SELECT * FROM adm_blog WHERE matiere='compoimages' ORDER BY nom";
break;
case 5:
$requete2 = "SELECT * FROM adm_blog WHERE matiere='aftereffects' ORDER BY nom";
break;
case 6:
$requete2 = "SELECT * FROM adm_blog WHERE matiere='sketchup' ORDER BY nom";
break;
case 7:
$requete2 = "SELECT * FROM adm_blog WHERE matiere='3dsmax' ORDER BY nom";
break;
case 8:
$requete2 = "SELECT * FROM adm_blog WHERE matiere='maya' ORDER BY nom";
break;
case 9:
$requete2 = "SELECT * FROM adm_blog WHERE matiere='films' ORDER BY nom";
break;
default:
$requete2 = "SELECT * FROM adm_blog WHERE matiere='flash' ORDER BY id";
}
$result2 = mysql_db_query($bdd, $requete2);
$donnees2 = mysql_fetch_array($result2);
?>
Et les liens correspondants :
<div id="typematiere">
<img src="image/PageBlog/onglet.jpg"/> <?php echo "<a href=\"blog.php?ID=".$donnees["ID"]."&matiere=flash\" >";?>FLASH</a><br/><br/>
<img src="image/PageBlog/onglet.jpg"/> <?php echo "<a href=\"blog.php?ID=".$donnees["ID"]."&matiere=illustrator\" >";?>ILLUSTRATOR</a><br/><br/>
<img src="image/PageBlog/onglet.jpg"/> <?php echo "<a href=\"blog.php?ID=".$donnees["ID"]."&matiere=photoshop\" >";?>PHOTOSHOP</a><br/><br/>
<img src="image/PageBlog/onglet.jpg"/> <?php echo "<a href=\"blog.php?ID=".$donnees["ID"]."&matiere=compoimages\" >";?>COMPO-IMAGES</a><br/><br/>
<img src="image/PageBlog/onglet.jpg"/> <?php echo "<a href=\"blog.php?ID=".$donnees["ID"]."&matiere=aftereffects\" >";?>AFTER-EFFECTS</a><br/><br/>
<img src="image/PageBlog/onglet.jpg"/> <?php echo "<a href=\"blog.php?ID=".$donnees["ID"]."&matiere=sketchup\" >";?>SKETCHUP</a><br/><br/>
<img src="image/PageBlog/onglet.jpg"/> <?php echo "<a href=\"blog.php?ID=".$donnees["ID"]."&matiere=3dsmax\" >";?>3 DS MAX</a><br/><br/>
<img src="image/PageBlog/onglet.jpg"/> <?php echo "<a href=\"blog.php?ID=".$donnees["ID"]."&matiere=maya\" >";?>MAYA</a><br/><br/>
<img src="image/PageBlog/onglet.jpg"/> <?php echo "<a href=\"blog.php?ID=".$donnees["ID"]."&matiere=films\" >";?>FILMS FIN D'ANNEE</a>
</div>
A voir également:
- Boucle Switch
- Android switch - Accueil - Android
- Switch 2 - Accueil - Jeu vidéo
- Smart switch pc - Télécharger - Divers Bureautique
- Switch off - Télécharger - Divers Utilitaires
- Switch qwerty azerty - Guide
2 réponses
Salut,
C'est normal si ton switch passe toujours par le cas par défaut.
Tu évalues les différentes valeurs de $matiere dans ton switch avec des valeurs allant de 1 à 9.
Mais vu les liens correspondant que tu as donné $matiere peut valoir "flash" ou "illustrator" ou ...
Donc $matiere ne vaut jamais un chiffre compris entre 0 et 9 et tu passes directement au cas pas défaut.
Ce qu'il faut faire:
switch ($matiere){
case "flash":
$requete2 = "SELECT * FROM adm_blog WHERE matiere='flash' ORDER BY id";
break;
case "illustrator":
$requete2 = "SELECT * FROM adm_blog WHERE matiere='illustrator' ORDER BY id";
break;
...
Voir aussi:
http://www.manuelphp.com/php/control-structures.switch.php
Bonne journée,
Barracuda.
C'est normal si ton switch passe toujours par le cas par défaut.
Tu évalues les différentes valeurs de $matiere dans ton switch avec des valeurs allant de 1 à 9.
Mais vu les liens correspondant que tu as donné $matiere peut valoir "flash" ou "illustrator" ou ...
Donc $matiere ne vaut jamais un chiffre compris entre 0 et 9 et tu passes directement au cas pas défaut.
Ce qu'il faut faire:
switch ($matiere){
case "flash":
$requete2 = "SELECT * FROM adm_blog WHERE matiere='flash' ORDER BY id";
break;
case "illustrator":
$requete2 = "SELECT * FROM adm_blog WHERE matiere='illustrator' ORDER BY id";
break;
...
Voir aussi:
http://www.manuelphp.com/php/control-structures.switch.php
Bonne journée,
Barracuda.