begin process at 2012 05 28 09:32:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

Condition if qui ne fonctionne pas !!!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Condition if qui ne fonctionne pas !!!

mercredi 27 octobre 2010 à 13:58:21 | Condition if qui ne fonctionne pas !!!

sly456328971

Bonjour,

j'ai ma fonction suivante me permettant d'afficher un tableau :

Code PHP :
 function afficher($fichier, $separateur)
			{
				$tab = file($fichier); // le fichier est placé dans un tableau ($tab[0] correspond à la 1ere ligne du fichier)
				print "<table border=\"1\" cellpadding=\"3\" cellspacing=\"2\">";
				$num_ligne=1;
				for($i=0;$i<count($tab);$i++) // on compte le nombre de lignes et tant qu'on n'a pas parcouru tout le fichier
				{
					// on découpe une chaine de caractères lorsqu'on rencontre $separateur afin de créer un dans un tableau 
					$position=explode($separateur,$tab[$num_ligne-1]); 
					print "<tr>";	
					if ($position[2]=faux)
					{					
						print "<td><img src='/essai/images/rouge.jpg' width=30 height=30 border='no'></td>";
					}
					else
					{
						print "<td><img src='/essai/images/vert.jpg' width=30 height=30 border='no'></td>";
					}
					$act=$position[0];
					$cli=$position[1];					
					print "<td align='center'>$act</td>"; // on affiche $act
					print "<td align='center'>$cli</td>";
	
					// on affecte à chaque ligne un id utilisé pour la suppression d'une ligne précise 					
					print "<td><a href=\"".$_SERVER['PHP_SELF']."?suppr=".$i."\"><img src='/essai/images/poubelle.png' width=35 height=35 border='no'></a></td>"; 
									
					print "</tr>";
					$num_ligne++;
				}
				print "</table>";
			}


Mon souci est que lorsque le mot se trouvant en troisieme position de mon fichier texte après le deuxieme pipe donc est à vrai, il ne me change pas l'image.

Merci de votre aide.
mercredi 27 octobre 2010 à 14:13:24 | Re : Condition if qui ne fonctionne pas !!!

ludwig59

Bonjour,

L'élément de comparaison d'égalité n'est pas un simple '=' mais un double :

Code PHP :
if($position[2] == "faux")
{
 // traitement image rouge
}
else
{
 // traitement image verte
}
mercredi 27 octobre 2010 à 14:14:52 | Re : Condition if qui ne fonctionne pas !!!

TychoBrahe

Salut,

Code PHP :
if ($position[2]=faux)

L'opérateur égal est pour une affectation, pas une comparaison. De plus, le mot clé faux n'existe pas en php.
mercredi 27 octobre 2010 à 14:19:30 | Re : Condition if qui ne fonctionne pas !!!

sly456328971

if($position[2] == "faux") ne fonctionne pas, il m'affiche que des images vertes.

TychoBrahe, mon fichier texte se compose ainsi :

param1|param2|vrai
param3|param4|faux ...

help
mercredi 27 octobre 2010 à 14:24:53 | Re : Condition if qui ne fonctionne pas !!!

ludwig59

Dans ta boucle FOR fais des echo de $position[2] pour voir ce qu'il affiche.
mercredi 27 octobre 2010 à 14:28:01 | Re : Condition if qui ne fonctionne pas !!!

sly456328971

je l'ai déja fait et il m'affiche bien ce qu'il faut soit :

vrai vrai faux vrai vrai vrai vrai faux ....
mercredi 27 octobre 2010 à 14:29:00 | Re : Condition if qui ne fonctionne pas !!!

sly456328971

j'ai remplacé "faux" par 0 en mettant des 0 dans mon fichier texte à la place des faux et des 1 a la place des vrai et ça fonctionne ...

bizarre
jeudi 28 octobre 2010 à 01:48:04 | Re : Condition if qui ne fonctionne pas !!!

TychoBrahe

Réponse acceptée !
Salut,

Si ta condition ne fonctionne pas c'est sans doute parce que ta chaîne "faux" lue dans le fichier est suivie d'un retour à la ligne. L'utilisation de trim() sur les données récupérées règle le problème. Voici ton code simplifié et corrigé (cependant le html reste dégueu) :

Code PHP :
<?php

function afficher($fichier, $separateur)
{
  echo '<table border="1" cellpadding="3" cellspacing="2">';

  $tab = file($fichier);
  foreach ($tab as $line)
    {
      $data = explode($separateur, $line);
      if (sizeof($data) != 3)
	continue ;
      if (strtolower(trim($data[2])) == 'faux')
	echo '<td><img src="/essai/images/rouge.jpg" width="30" height="30" border="no"></td>';
      else
	echo '<td><img src="/essai/images/vert.jpg" width="30" height="30" border="no"></td>';
      echo '<td align="center">', trim($data[0]), '</td>';
      echo '<td align="center">', trim($data[1]), '</td>';
    }

  echo '</table>';
}

?>
mercredi 3 novembre 2010 à 10:27:29 | Re : Condition if qui ne fonctionne pas !!!

sly456328971

Merci beaucoup TychoBrahe, ta solution marche à la perfection !!

Cependant je n'arrive toujours pas à faire fonctionner mon click sur image. J'ai donc ceci :

Code PHP :
$tab = file($fichier); // le fichier est placé dans un tableau ($tab[0] correspond à la 1ere ligne du fichier)
				print "<table border=\"1\" cellpadding=\"3\" cellspacing=\"2\">";
				$num_ligne=1;
				for($i=0;$i<count($tab);$i++) // on compte le nombre de lignes et tant qu'on n'a pas parcouru tout le fichier
				{
					// on découpe une chaine de caractères lorsqu'on rencontre $separateur afin de créer un dans un tableau 
					$position=explode($separateur,$tab[$num_ligne-1]); 
					print "<tr>";
[b]					if (strtolower(trim($position[2])) == 'faux') 
					{					
						print "<td><img src='/essai/images/rouge.jpg' width=30 height=30 border='no' onclick=document.location.href='enregistrement.php'></td>";
					}
					else
					{
						print "<td><img src='/essai/images/vert.jpg' width=30 height=30 border='no' onclick=self.location.href='suppression.php'></td>";
					}[/b]
					$act=$position[0];
					$cli=$position[1];					
					print "<td align='center'>$act</td>"; // on affiche $act
					print "<td align='center'>$cli</td>";
					}


L'image est donc affiché en fonction du troisieme paramètre de mon fichier texte qui ressemble à cela :

truc1|Machin1|faux

truc2|Machin2|faux

truc3|Machin3|vrai

si le parametre est faux = rouge.jpg sinon vert.jpg

J'aimerais que lorsqu'on clique sur une ligne avec l'image rouge cette ligne passe au vert en remplacant dans le fichier texte le parametre à 'faux' par 'vrai' et remplacer toutes les autres par 'faux'. Je ne sais pas si l'événement Onclick doit faire appel à une fonction php ou si on peut faire cela en javascript ...
mercredi 3 novembre 2010 à 12:02:54 | Re : Condition if qui ne fonctionne pas !!!

sly456328971

j'ai essayé ça mais ça ne fonctionne pas :

Code PHP :
	if (isset($_GET['ajout'])) // Si on demande de supprimer une ligne
			{
				$tab = file("affichage.txt");
				$num_ligne =1;
				for ($cpt = 0; $cpt<count($tab);$cpt++)
				{
					$position=explode('|',$tab[$num_ligne-1]);					
					for ($a = 0; $a<count($tab);$a++)
					{
						$position=explode('|',$tab[$a]);
						$position[2]='0';
					}	
						$actif .= ($cpt!=$_GET['ajout']) ? $position[$cpt] : "vrai"; // on supprime la ligne sélectionnée en la remplaçant par une ligne vide
						$fic = fopen ("affichage.txt", 'w');
						str_replace($actif,$position[3]);
						$numligne++;				
						
						header('Location: index.php'); 	// on recharge cette page pour la réactualiser						
						
				}
			}


récupération de l'id :

Code PHP :
if (strtolower(trim($position[2])) == 'faux') 
					{					
						print "<td><a href=\"".$_SERVER['PHP_SELF']."?ajout=".$j."\"><img src='/essai/images/rouge.jpg' width=30 height=30 border='no'></a></td>";
					}
					else
					{
						print "<td><a href=\"".$_SERVER['PHP_SELF']."?ajout=".$j."\"><img src='/essai/images/vert.jpg' width=30 height=30 border='no'></a></td>";
					}


Cette discussion est classée dans : fichier, ligne, position, print, if


Répondre à ce message

Sujets en rapport avec ce message

récupérer un fichier de la BD MYSQL [ par mao54 ] salutj'ai des fichier stockés dans la base de donnée et j'ai une methode de recherche qui affiche ces resultats dans un tableau.je souhaite dans la co PHP unexpected T_IF [ par libuma ] Bonjour,Pourriez-vous m'aider avant que je casse autre chose que ma souris svp!! >_Voici mon erreur : Parse error: syntax error, unexpected T_IF in C Membre en ligne [ par dclick07 ] Voici mon probleme. Je sais que dans le profil d'un membre ce code ci-dessous me permet de voir si un membre est en ligne mais lorsque j'utilise ce c problème de upload de fichier [ par theboubourse ] bonjour voila je souhaiterais uploader des fichier mais je n'y arrive pas si vous pouvez m'aider merci voici le code que j'ai et qui fonctionne lorsq Retour a la ligne et écriture [ par DjChat ] bonjour a tous, j'ai fait un script d'upload d'image et j'ai besoin qu'une fois qu'elle est uploder il m'ecrive dans un fichier texte images/le nom de PROBLEME AUX FONCTIONS D'AJAX [ par hindweb ] bonjour a tousMerci de m'aider à trouver ma fautej'ai créer une base de donnée avec une table(inscrit) de 2 champ login et passet j'ai créer ce fichie Tableau de fichiers [ par ninho44 ] Bonjour a tous,Voila alors j'ai un petit souci en PHP et n'étant pas encore très doué je fais appel à vos talents.Mon problème est que sur une de mes Upload ? [ par robapt ] Bonjour, je fais pour un site en ce moment un code qui demande un mots de passe avant qu'on puisse uploader le fichier qu'on choisit, j'ai les 2 code php rafraichissement d'une ligne de code avec ajax [ par speedylol ] Bonjour,une aidez pour la partie ajax qui devrais rafraichire automtiquement et qui de fonctionne pas quand le fait appel par un include dans mon gaba Pb Impression automatique [DEPLACE] [ par Falcon074 ] Bonjour tout le monde !!! J'ai un pb d'impression automatique d'une page HTML sous IE 7. Ce code fonctionne mais pour les version antérieur à la versi


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,137 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales