Switch ne marche pas
Imen Ben Hassen
-
Imen Ben Hassen -
Imen Ben Hassen -
Bonjour,
j'ai un code qui va afficher un tableau qui contient des données enregistrés dans la base de données .Dans le dernier cas je veux afficher une cercle(image) selon la valeur de $row[4] (la decision).Alors que l'affichage me donne cet erreur :Notice: Undefined variable: DecisionP in C:\wamp\www\gestionrisques\tableau_bord_tools.inc.php on line 52
Quelqu'un aurait une solution svp?
Merci d'avance.
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
.
j'ai un code qui va afficher un tableau qui contient des données enregistrés dans la base de données .Dans le dernier cas je veux afficher une cercle(image) selon la valeur de $row[4] (la decision).Alors que l'affichage me donne cet erreur :Notice: Undefined variable: DecisionP in C:\wamp\www\gestionrisques\tableau_bord_tools.inc.php on line 52
while( $row=mysql_fetch_array($result)){
switch ($row[4]) {
case 'non terminé':
return $DecisionP = 'images/head_form_ok.jpg';
break;
case 'terminé':
return $DecisionP = 'images/circle-green.PNG';
break;
}
echo"<tr>" ;
echo "<td style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc; '>$row[0]</td>
<td style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc;'>$row[1]</td>
<td style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc;'>$row[2]</td>
<td style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc;'>$row[3]</td>
";
echo"<td align='center' style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc;'><img src=".$DecisionP."/></td>
";
echo "</tr>" ;
$i++ ;
}
}
return $contenu ;
} ;
Quelqu'un aurait une solution svp?
Merci d'avance.
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
.
A voir également:
- Switch ne marche pas
- Android switch - Accueil - Android
- Smart switch pc - Télécharger - Divers Bureautique
- Switch off - Télécharger - Divers Utilitaires
- Logiciel switch - Télécharger - Conversion & Extraction
- Switch 2 - Accueil - Jeu vidéo
12 réponses
Bonjour,
Tu fais un RETURN + une afectation de variable en même temps... ce n'est pas terrible !
Essayes ceci :
Tu fais un RETURN + une afectation de variable en même temps... ce n'est pas terrible !
Essayes ceci :
switch ($row[4]) {
case 'non terminé':
$DecisionP = 'images/head_form_ok.jpg';
break;
case 'terminé':
$DecisionP = 'images/circle-green.PNG';
break;
default:
// toute autre valeur...
$DecisionP = '';
break;
}
voilà mon code jordane45 et merci de m'aider :))
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
<?php
include("db_tools.inc.php") ;
function tableau_bord_client($roleU) {
$query="SELECT p.Nom_P, p.Date_debut, p.Date_fin, p.Avancement,p.DecisionP FROM projet p , client_projet cp WHERE cp.idCl=". $_SESSION['id_User']. " and p.id_P = cp.idPr " ;
$result=db_doquery($query) ;
//La balise <table> et la ligne des entêtes sont déjà déclarés dans le script listClients.php.
//Nous allons parcourir le resultat et créer les lignes de ce tableau HTML. Il s'agit de créer une chaine de caractère
//lui cotient ces les lignes. Cette chaine sera la valeur de retour de cette fonction.
$contenu="" ;
$chef=(isset($roleU) && $roleU=="terminé")? TRUE : FALSE ;
if( @mysql_num_rows($result)==0){
//dans le cas où pas de clients trouvés, une seule ligne qui s'affiche indiquant cette état
echo"<tr class=\"notfound\"><td colspan='6'> Aucun étape n'a été trouvé.</td></tr>" ;
}else {
$i=0 ;
while( $row=mysql_fetch_array($result)){
switch ($row[4]) {
case 'non terminé':
$DecisionP = 'images/head_form_ok.jpg';
break;
case 'terminé':
$DecisionP = 'images/circle-green.PNG';
break;
default:
// toute autre valeur...
$DecisionP = '';
break;
}
echo"<tr>" ;
echo "<td style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc; '>$row[0]</td>
<td style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc;'>$row[1]</td>
<td style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc;'>$row[2]</td>
<td style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc;'>$row[3]</td>
";
echo"<td align='center' style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc;'><img src=".$DecisionP."/></td>
";
echo "</tr>" ;
$i++ ;
}
}
return $contenu ;
} ;
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Commence par faire un ECHO de ta variable pour voir ce qu'elle vaut.
EDIT : MAJ du code
<?php
include("db_tools.inc.php") ;
function tableau_bord_client($roleU) {
$id_user = isset($_SESSION['id_User'])?$_SESSION['id_User']:NULL;
if($id_user){
$query="SELECT p.Nom_P, p.Date_debut, p.Date_fin, p.Avancement,p.DecisionP
FROM projet p , client_projet cp
WHERE cp.idCl='$id_user'
AND p.id_P =cp.idPr " ;
$result=db_doquery($query) ;
}else{
// si aucun ID user présent dans la variable SESSION['id_User']
return -1;
}
//La balise <table> et la ligne des entêtes sont déjà déclarés dans le script listClients.php.
//Nous allons parcourir le resultat et créer les lignes de ce tableau HTML. Il s'agit de créer une chaine de caractère
//qui contient les lignes. Cette chaine sera la valeur de retour de cette fonction.
$contenu="" ;
$chef=(isset($roleU) && $roleU=="terminé")? TRUE : FALSE ;
if( @mysql_num_rows($result)==0){
//dans le cas où pas de clients trouvés, une seule ligne qui s'affiche indiquant cette état
echo"<tr class=\"notfound\"><td colspan='6'> Aucun étape n'a été trouvée.</td></tr>" ;
}else {
$i=0 ;
while( $row=mysql_fetch_array($result)){
$statut= $row[4];
switch ($statut) {
case 'non terminé':
$DecisionP = 'images/head_form_ok.jpg';
break;
case 'terminé':
$DecisionP = 'images/circle-green.PNG';
break;
default:
// toute autre valeur...
$DecisionP = '';
//Le temps des tests
echo "<br><br> row[4] => ".$statut;
break;
}
echo"<tr id='tr_$i'>" ;
echo "<td style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc; '>$row[0]</td>
<td style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc;'>$row[1]</td>
<td style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc;'>$row[2]</td>
<td style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc;'>$row[3]</td>
";
echo"<td align='center' style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc;'>
<img src='$DecisionP' alt='image'></img>
</td>
";
echo "</tr>" ;
$i++ ;
}
}
return $contenu ;
} ;
EDIT : MAJ du code
Jordane45 svp quand je mets terminé avec "é" dans la base de données et dans le switch , l'image ne s'affiche pas
jordane45 j'ai mets dans la base de données les valeurs comme ça: en risque, terminé , non terminé et en cours et dans votre code je mets
et la source de la page m'affiche comme ça:<img src="alt='image'">
merci :)
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
.
$statut= $row[4];
switch ($statut) {
case 'en risque':
$DecisionP = 'images/circle-ora.png';
break;
case 'terminé':
$DecisionP = 'images/circle-green.PNG';
break;
case 'non terminé':
$DecisionP = 'images/circle-red.PNG';
break;
default:
// toute autre valeur...
$DecisionP = 'images/circle-blue.PNG';
break;
}
et la source de la page m'affiche comme ça:<img src="alt='image'">
merci :)
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Commence par afficher le contenu de la variable $statut pour voir ce qu'elle contient :
Ensuite, tu me confirmes que le code utilisé pour afficher les image est toujours le même que celui que tu nous avais montré ?
Au cas où .. remontre nous le code COMPLET de ta page.
$statut= $row[4];
echo "<br><br> Statut : ".$statut;
switch ($statut) {
case 'en risque':
$DecisionP = 'images/circle-ora.png';
break;
case 'terminé':
$DecisionP = 'images/circle-green.PNG';
break;
case 'non terminé':
$DecisionP = 'images/circle-red.PNG';
break;
default:
// toute autre valeur...
$DecisionP = 'images/circle-blue.PNG';
break;
}
Ensuite, tu me confirmes que le code utilisé pour afficher les image est toujours le même que celui que tu nous avais montré ?
echo"<td align='center' style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc;'>
<img src='$DecisionP' alt='image'></img>
</td>
";
Au cas où .. remontre nous le code COMPLET de ta page.
voilà le code complet jordane45
merci :)
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
<?php
include("db_tools.inc.php") ;
function tableau_bord_client($roleU) {
$query="SELECT p.Nom_P, p.Date_debut, p.Date_fin, p.Avancement,p.DecisionP FROM projet p , client_projet cp WHERE cp.idCl=". $_SESSION['id_User']. " and p.id_P = cp.idPr " ;
$result=db_doquery($query) ;
//La balise <table> et la ligne des entêtes sont déjà déclarés dans le script listClients.php.
//Nous allons parcourir le resultat et créer les lignes de ce tableau HTML. Il s'agit de créer une chaine de caractère
//lui cotient ces les lignes. Cette chaine sera la valeur de retour de cette fonction.
$contenu="" ;
$chef=(isset($roleU) && $roleU=="terminé")? TRUE : FALSE ;
if( @mysql_num_rows($result)==0){
//dans le cas où pas de clients trouvés, une seule ligne qui s'affiche indiquant cette état
echo"<tr class=\"notfound\"><td colspan='6'> Aucun étape n'a été trouvé.</td></tr>" ;
}else {
$i=0 ;
while( $row=mysql_fetch_array($result)){
$statut= $row[4];
switch ($statut) {
case 'en risque':
$DecisionP = 'images/circle-ora.png';
break;
case 'terminé':
$DecisionP = 'images/circle-green.PNG';
break;
case 'non terminé':
$DecisionP = 'images/circle-red.PNG';
break;
default:
// toute autre valeur...
$DecisionP = 'images/circle-blue.PNG';
break;
}
echo"<tr>" ;
echo "<td style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc; '>$row[0]</td>
<td style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc;'>$row[1]</td>
<td style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc;'>$row[2]</td>
<td style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc;'>$row[3]</td>
";
echo"<td align='center' style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc;'>
<img src=".$DecisionP." alt='image'></img>
</td>
";
echo "</tr>" ;
$i++ ;
}
}
return $contenu ;
} ;
merci :)
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
Tu as changé le code ?
N'est pas celui que je t'avais donné :
Tu as oublié de mettre des QUOTES dans ta balises SRC.
A la limite.. si tu veux garder la séparation de ta varible (comme tu as fais dans TON code)
tu peux faire comme ceci :
PS : Comme te l'a conseillé Groarch dans son message de ta dernière question https://forums.commentcamarche.net/forum/affich-32096945-rowspan-ne-marche-pas#1
.. fais un peu de ménage dans ton code (principalement au niveau des Styles..)
echo"<td align='center' style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc;'>
<img src=".$DecisionP." alt='image'></img>
</td>
";
N'est pas celui que je t'avais donné :
echo"<td align='center' style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc;'>
<img src='$DecisionP' alt='image'></img>
</td>
";
Tu as oublié de mettre des QUOTES dans ta balises SRC.
A la limite.. si tu veux garder la séparation de ta varible (comme tu as fais dans TON code)
tu peux faire comme ceci :
echo"<td align='center' style=' background:#DCDCDC; padding:5px; border-left:1px solid #ccc; border-top:1px solid #ccc;'>
<img src='".$DecisionP."' alt='image'></img>
</td>
";
PS : Comme te l'a conseillé Groarch dans son message de ta dernière question https://forums.commentcamarche.net/forum/affich-32096945-rowspan-ne-marche-pas#1
.. fais un peu de ménage dans ton code (principalement au niveau des Styles..)
Je t'ai demandé de rajouter, dans ton code, du débug sur ta variable :
.... qu'est ce que ça t'affiche ?????
Es-tu sûr que dans ta BDD .. tu n'aurais pas des espaces en plus par exemple ?
Tu as bien la même syntaxe (Majuscules/minuscules) ??
A la limite, on va supprimer les éventuels espaces superflus pour limiter les risques :
echo "<br><br> Statut : ".$statut;
.... qu'est ce que ça t'affiche ?????
Es-tu sûr que dans ta BDD .. tu n'aurais pas des espaces en plus par exemple ?
Tu as bien la même syntaxe (Majuscules/minuscules) ??
A la limite, on va supprimer les éventuels espaces superflus pour limiter les risques :
$statut= trim($row[4]);
Pourrais tu nous fournir un dump de ta table ?
histoire qu'on sache exactement ce qu'elle contient... et sous quelle forme ?
histoire qu'on sache exactement ce qu'elle contient... et sous quelle forme ?
Heuuu..... il manque des lignes ....
Au passage :
**** Attention ****
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
.
Au passage :
**** Attention ****
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
.
-- phpMyAdmin SQL Dump -- version 4.0.4 -- http://www.phpmyadmin.net -- -- Client: localhost -- Généré le: Jeu 11 Juin 2015 à 13:34 -- Version du serveur: 5.6.12-log -- Version de PHP: 5.4.16 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -- -- Base de données: `gestionrisques` -- -- -------------------------------------------------------- -- -- Structure de la table `projet` -- CREATE TABLE IF NOT EXISTS `projet` ( `id_P` int(11) NOT NULL AUTO_INCREMENT, `Nom_P` varchar(100) NOT NULL, `idM` int(11) NOT NULL, `idRo` int(11) NOT NULL, `Date_debut` date NOT NULL, `Date_fin` date NOT NULL, `Avancement` varchar(10) DEFAULT '0%', `DecisionP` varchar(100) NOT NULL DEFAULT '1', `Date_fin_estime` date DEFAULT NULL, PRIMARY KEY (`id_P`), UNIQUE KEY `Nom_P` (`Nom_P`), KEY `id_M` (`idM`,`idRo`), KEY `idRo` (`idRo`), KEY `idM` (`idM`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1495 ; -- -- Contenu de la table `projet` -- INSERT INTO `projet` (`id_P`, `Nom_P`, `idM`, `idRo`, `Date_debut`, `Date_fin`, `Avancement`, `DecisionP`, `Date_fin_estime`) VALUES (1135, 'projet123', 210, 2, '0000-00-00', '0000-00-00', '0', 'non terminé', '0000-00-00'), (1136, 'projet 2', 210, 2, '2015-05-21', '2015-07-31', '10', 'non terminé', '2016-03-26'), (1139, 'projet de conception et de ', 210, 7, '2015-05-15', '2015-05-31', '10%', 'non terminé', '0000-00-00'), (1236, 'Projet de test ', 210, 2, '2015-05-13', '2015-05-31', '0', 'non terminé', '0000-00-00'), (1363, 'projet de production', 210, 2, '0000-00-00', '0000-00-00', '0%', 'non terminé', '0000-00-00'), (1364, 'projet', 227, 2, '0000-00-00', '0000-00-00', '0%', 'non terminé', NULL), (1365, 'projet3', 210, 2, '0000-00-00', '0000-00-00', '0%', 'non terminé', NULL), (1366, 'projet36', 210, 2, '0000-00-00', '0000-00-00', '0%', 'non terminé', NULL), (1367, 'Projet de communication', 210, 2, '0000-00-00', '0000-00-00', '0%', 'non terminé', NULL), (1368, 'Projet de communication1', 210, 2, '0000-00-00', '0000-00-00', '0%', 'non terminé', NULL), (1369, 'gestionn de workflow', 210, 2, '0000-00-00', '0000-00-00', '0%', 'non terminé', NULL), (1370, 'projet de logistique', 210, 2, '0000-00-00', '0000-00-00', '0%', 'non terminé', NULL), (1371, 'molprlrkr', 210, 2, '0000-00-00', '0000-00-00', '0%', 'non terminé', NULL), (1372, 'projet de developement', 210, 2, '0000-00-00', '0000-00-00', '0%', 'non terminé', NULL), (1373, 'projet de traitement de cycle', 210, 2, '0000-00-00', '0000-00-00', '0%', 'non terminé', NULL), (1374, 'mpppppp', 210, 2, '0000-00-00', '0000-00-00', '0%', 'non terminé', NULL), (1375, 'mppppppù', 210, 2, '0000-00-00', '0000-00-00', '0%', 'non terminé', NULL), (1376, 'projet 25639', 210, 2, '0000-00-00', '0000-00-00', '0%', 'non terminé', NULL), (1377, 'projet12365', 210, 2, '0000-00-00', '0000-00-00', '0%', 'non terminé', NULL), (1378, 'prorojet develo', 210, 2, '0000-00-00', '0000-00-00', '0%', 'non terminé', NULL), (1379, 'prorojet develop', 210, 2, '2015-05-16', '2015-05-31', '0%', 'non terminé', NULL), (1380, 'prorojet develop3', 210, 2, '2015-05-16', '2015-05-31', '0%', 'non terminé', NULL), (1381, 'prorojet ', 210, 2, '2015-05-16', '2015-05-31', '0%', 'non terminé', NULL), (1382, 'prorojet 23', 210, 2, '2015-05-16', '2015-05-31', '0%', 'non terminé', NULL), (1383, 'prorojet 23562', 210, 2, '2015-05-16', '2015-05-31', '0%', 'non terminé', NULL), (1494, 'R&D', 210, 10, '2015-06-18', '2015-06-28', '0%', 'en risque', NULL); -- -- Contraintes pour les tables exportées -- -- -- Contraintes pour la table `projet` -- ALTER TABLE `projet` ADD CONSTRAINT `projet_ibfk_1` FOREIGN KEY (`idM`) REFERENCES `model` (`id_M`) ON DELETE CASCADE ON UPDATE CASCADE, ADD CONSTRAINT `projet_ibfk_3` FOREIGN KEY (`idRo`) REFERENCES `users` (`id_User`) ON DELETE CASCADE ON UPDATE CASCADE; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
-- phpMyAdmin SQL Dump
-- version 4.0.4
-- https://www.phpmyadmin.net/
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Merci d'y penser dans tes prochains messages.
.
Je viens de tester ... ça fonctionne très bien...
Tu peux essayer ceci :
et nos coller le résultat (ce que ça t'affiche) ici ?
Tu peux essayer ceci :
$statut= $row[4];
switch ($statut) {
case 'en risque':
$DecisionP = 'images/circle-ora.png';
echo " <br>==> EN RISQUE : OK ";
break;
case 'terminé':
$DecisionP = 'images/circle-green.PNG';
echo " <br>==> TERMINTE : OK ";
break;
case 'non terminé':
$DecisionP = 'images/circle-red.PNG';
echo " ==> NON TERMINTE : OK ";
break;
default:
// toute autre valeur...
$DecisionP = 'images/circle-blue.PNG';
echo "<br><b> ==> AUTRE VALEUR </b> : " . $statut;
break;
}
et nos coller le résultat (ce que ça t'affiche) ici ?
mais maintenant la case contient une image vide alors que le statut dans la base de données est 'terminé' donc normalement on aura l'image images/circle-green.PNG ce qui n'est pas le cas :(