Rechercher : dans
Par :

Boucle Switch

Dernière réponse le 29 mai 2008 à 15:19:09 ellocodu59, le 29 mai 2008 à 15:05:44 
 Signaler ce message aux modérateurs

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>

Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « Boucle Switch » dans :
Qu'est ce qu'un switch ? VoirQu'est ce qu'un switch ? Définition Principe de fonctionnement La commutation Création de la table d'adresse MAC Pour aller plus loin Descendant du HUB, le switch, ou commutateur en français, est présent dans l'ensemble des...
Firefox bloque les boucles de redirection VoirProblème Comment faire pour que Firefox tienne compte des boucles de redirection ? Solution La configuration de Firefox limite parfois le nombre de redirection enchainées, ce qui génère cette erreur. Pour ne pas avoir ce problème il faut modifier...
Télécharger Mobile Net Switch VoirSi vous utilisez le même ordinateur à la maison, au bureau et en déplacement et que vous devez vous connecter à diverses connexions réseau, munissez vous de cet outil. Mobile Net Switch est un gestionnaire de connexion Internet. En effet, à chaque...
Equipements réseau - Le commutateur (switch) VoirCommutateur Un commutateur (en anglais switch) est un pont multiports, c'est-à-dire qu'il s'agit d'un élément actif agissant au niveau 2 du modèle OSI. Le commutateur analyse les trames arrivant sur ses ports d'entrée et filtre les données...

1

JR des cavernes, le 29 mai 2008 à 15:08:04

Il faut que tu mettes des cotes autour de tes chiffres comme cela : case '6':

Répondre à JR des cavernes

2

Barracuda8, le 29 mai 2008 à 15:13:18

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.

Répondre à Barracuda8

3

 ellocodu59, le 29 mai 2008 à 15:19:09

ça marche niquel !
Merci pour ton aide !
Bonne journée

Répondre à ellocodu59
Collection CommentÇaMarche.net