Boucle Switch

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>
A voir également:

2 réponses

JR des cavernes Messages postés 166 Statut Membre 84
 
Il faut que tu mettes des cotes autour de tes chiffres comme cela : case '6':
0
Barracuda8 Messages postés 108 Date d'inscription   Statut Membre Dernière intervention   65
 
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.
0
ellocodu59
 
ça marche niquel !
Merci pour ton aide !
Bonne journée
0