Problème d'affichage boucle sur switch php
Résolu/Fermé
micaunprobzo
Messages postés
4
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
6 septembre 2007
-
5 sept. 2007 à 11:39
micaunprobzo Messages postés 4 Date d'inscription mercredi 5 septembre 2007 Statut Membre Dernière intervention 6 septembre 2007 - 5 sept. 2007 à 16:33
micaunprobzo Messages postés 4 Date d'inscription mercredi 5 septembre 2007 Statut Membre Dernière intervention 6 septembre 2007 - 5 sept. 2007 à 16:33
A voir également:
- Problème d'affichage boucle sur switch php
- Easy php - Télécharger - Divers Web & Internet
- Affichage double ecran - Guide
- Logiciel switch - Télécharger - Conversion & Extraction
- Problème affichage fenêtre windows 10 - Guide
- Windows 11 affichage classique - Guide
4 réponses
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
5 sept. 2007 à 14:28
5 sept. 2007 à 14:28
Mmmmh, que dirais-tu de ceci alors ?
$resultatfiche = mysql_query("SELECT * FROM table1 WHERE id_table >= $i AND id_table < $r AND day = '$date1'", $connexion_sql); $j = 0; while ($data = mysql_fetch_assoc($resultatfiche)) { $day = $data["day"]; $h1 = $data["h1"]; $h2 = $data["h2"]; switch ($date1) { case 'Mon': case 'Tue': case 'Wed': case 'Thu': case 'Fri': case 'Sat': case 'Sun': if ($h1<$hms && $hms<($h2)) { $var='2'; } else { $var='1'; } break; default: $var='3'; break; } $array[$j]=$var; $j++; } $array=array_count_values($array); print_r($tableau);
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
5 sept. 2007 à 11:56
5 sept. 2007 à 11:56
Bonjour,
J'aurais déjà quelques remarques sur ta requête.
Je pense que tu peux l'optimiser de plusieurs façons :
1 - Evite d'utiliser des LIKE quand un = fait l'affaire. Pour des chiffres, pas besoin non plus de mettre des quotes '.
2 - Plutôt que de faire X requêtes pour chaque $i, il serait plus efficace de ne faire qu'une seule requête, qui prend tout les id entre $i et $r
Enfin ce n'est que de l'optimisation et n'est pas la cause de ton problème.
Sinon, c'est peut-être de là que vient ton problème, le dernier élément d'un switch n'est pas else {}, mais default:
Par ailleurs, tu peux factoriser des cas qui font la même chose en ne mettant pas de break; Enfin c'est surtout pour la présentation du code.
Dernière chose, dans ta dernière ligne, tu mets print_r($tableau), j'imagine que c'était en fait $array, non ?
Au final, ton switch deviendrait :
Xavier
J'aurais déjà quelques remarques sur ta requête.
Je pense que tu peux l'optimiser de plusieurs façons :
1 - Evite d'utiliser des LIKE quand un = fait l'affaire. Pour des chiffres, pas besoin non plus de mettre des quotes '.
2 - Plutôt que de faire X requêtes pour chaque $i, il serait plus efficace de ne faire qu'une seule requête, qui prend tout les id entre $i et $r
Enfin ce n'est que de l'optimisation et n'est pas la cause de ton problème.
Sinon, c'est peut-être de là que vient ton problème, le dernier élément d'un switch n'est pas else {}, mais default:
Par ailleurs, tu peux factoriser des cas qui font la même chose en ne mettant pas de break; Enfin c'est surtout pour la présentation du code.
Dernière chose, dans ta dernière ligne, tu mets print_r($tableau), j'imagine que c'était en fait $array, non ?
Au final, ton switch deviendrait :
if (mysql_num_rows($resultatfiche) != 0) { $day=mysql_result($resultatfiche,0,"day"); $h1=mysql_result($resultatfiche,0,"h1"); $h2=mysql_result($resultatfiche,0,"h2"); switch ($date1) { case 'Mon': case 'Tue': case 'Wed': case 'Thu': case 'Fri': case 'Sat': case 'Sun': if ($h1<$hms && $hms<($h2)) { $var='2'; } else { $var='1'; } break; default: $var='3'; break; } $array[$i]=$var; $i++; } $array=array_count_values($array); print_r($tableau);En espérant que cela aide...
Xavier
micaunprobzo
Messages postés
4
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
6 septembre 2007
5 sept. 2007 à 14:16
5 sept. 2007 à 14:16
Merci pour ta réponse je commence à voir le bout du tunnel surtout grâce au default!
ta deuxième remarque est le coeur de mon problème, je m'explique
lorsque je teste les id(s) invididuellement mon script fonctionne, mais lorsque je boucle avec mon while cela ne marche plus!
j'espère m'être bien expliqué.
Merci! Mic
ta deuxième remarque est le coeur de mon problème, je m'explique
lorsque je teste les id(s) invididuellement mon script fonctionne, mais lorsque je boucle avec mon while cela ne marche plus!
j'espère m'être bien expliqué.
Merci! Mic
micaunprobzo
Messages postés
4
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
6 septembre 2007
5 sept. 2007 à 16:33
5 sept. 2007 à 16:33
Alléluia!
C'est exactement ça merci beaucoup Xav !
Mic
C'est exactement ça merci beaucoup Xav !
Mic