Remplacer valeur par une autre dans une variable

Eléphant du PHP | 138 Messages

05 nov. 2007, 16:42

Salut,

Pour un script que j'utilise j'ai besoin d'assigner une nouvelle valeur a une variable, ci joint un exemple
$query="Select DATE_FORMAT(comite.dateca,'%d-%m-%Y') AS 'DATE DU COMITE', presence.membre AS MEMBRE, comite.organisme AS ORGANISATION_1

FROM comite,presence

WHERE presence.valide='Y' GROUP BY presence.id";
}
Dans ma page qui traite la requete j'ai ceci (c'est un script d'export de requete en excel)
		function ExcelOutput($query="")
		{
			//connect mysql database
			mysql_select_db($this->db_name,$this->db_link);
			
			//get result
			$result=mysql_query($query);
			$numoffields=mysql_num_fields($result);
			
			// now we could construct Excel output
			$fieldstype=array();
			
			for($i=0;$i<$numoffields;$i++){
				$fieldstype[]=mysql_field_type($result,$i);
			}// for($i=0;...) END
			
			//create new instance of ExcelGen() class
			$excel = new ExcelGen("CBE-Export");
			
			//initiate a counter for excel "ROW" counter
			$rowscounter=0;
			
			//write fields to excel
			for($i=0;$i<$numoffields;$i++){
				$fld=mysql_fetch_field($result,$i);
				$fldname=$fld->name;
				$excel->WriteText($rowscounter,$i,$fldname);
			}// for($i=0;...) END
			
			$rowscounter++;
			
			while($row=mysql_fetch_row($result)){
	

ICI se trouve
la ligne ou je veux effectuer le changement si la variable ORGANISATION_1 est 7 alors je le remplace par Banque XX mais ca ne fonctionne pas par contre si je met un echo j'ai bien les echos dans ma page mais la fonction ne marche pas.

if ($row[ORGANISATION_1] == '7'){$row[ORGANISATION_1] = "Banque XX";}

				//fetch each Cell($rowscounter,$colscounter) into Excel output stream
				for($colscounter=0;$colscounter<$numoffields;$colscounter++){
				
					//identify field type to descide how to write excel cell
					if(eregi("(int)",$fieldstype[$colscounter])){
						$excel->WriteNumber($rowscounter,$colscounter,$row[$colscounter]);
					}else{ 
						$excel->WriteText($rowscounter,$colscounter,$row[$colscounter]);
					}
				}//for($colscounter..) END
				$rowscounter++;
			}// while($row=mysql..) END
			$excel->SendFile();
			return;		
		}//ExcelOut() END		
	}//class Sql2Excel END
Merci de votre aide.

Eléphant du PHP | 445 Messages

05 nov. 2007, 16:52

if ($row['ORGANISATION_1'] == '7'){$row['ORGANISATION_1'] = "Banque XX";} 
Mets les noms entre guillemets.

Edit : Et remplace ton mysql_fetch_row() par mysql_fetch_assoc() si tu veux acceder aux valeur par le nom de la clef.
Sinon c'est :
if ($row[2] == '7'){$row[2] = "Banque XX";}
// 0 -> DATE_FORMAT(comite.dateca,'%d-%m-%Y') AS 'DATE DU COMITE'
// 1 -> presence.membre AS MEMBRE
// 2 -> comite.organisme AS ORGANISATION_1
Modifié en dernier par h0_noMan le 05 nov. 2007, 17:02, modifié 1 fois.

d0m
Mammouth du PHP | 1141 Messages

05 nov. 2007, 16:54

Ca ne fonctionne pas?
si tu affiche ta variable changé de cette manière cela donne quoi?
if ($row[ORGANISATION_1] == '7'){
  $row[ORGANISATION_1] = "Banque XX";
  echo $row[ORGANISATION_1];
} 

Eléphant du PHP | 138 Messages

05 nov. 2007, 17:00

Ca ne donne rien de plus grrr bizarre ca
Le seul truc qui fonctionne c'est
if ($row[ORGANISATION_1] == '7'){ 
  echo "test affichage"; 
}
Mon fichier excel ne se genere pas car il y a un echo mais je vois bien 3 fois ecrit test affichage qui correspond à 3 lignes ou je trouve des 7 c'est donc que la condition fonctionne.

Eléphant du PHP | 138 Messages

05 nov. 2007, 17:19

Bon j'ai trouvé mon pb en effet
while($row=mysql_fetch_array($result)){

if ($row[5] == '7'){$row[5] = "YESSSSS";} 
fonctionne

Merci