un résultat en variable

Eléphanteau du PHP | 18 Messages

08 sept. 2010, 11:59

Bonjour,
J'ai un petit souci de programmation (d'où ma présence ici!!).
Je vous explique:
j'aimerais savoir si c'est possible etsi oui comment pour mettre en variable un résultat d'un echo
un petit exemple pour etre plus clair car en me relisant même moi je ne comprends pas.
En faite je voudrais faire un truc du genre:
IF ( $machin and $ machine)
{
echo 'ceci';
}
if ('ceci')
{
echo 'cela';
}
j’espère avoir été clair, je reste sur le forum pour plus de détail si nécessaire.
Merci

Mammouth du PHP | 686 Messages

08 sept. 2010, 13:06

En gros ca peut donner ca
if( $machin and $ machine)
{
$variable = 'ceci';
}
if ('ceci')
{
$variable = 'cela';
}
echo $variable;

Eléphanteau du PHP | 18 Messages

08 sept. 2010, 13:40

je te remerci, je vais essayer et je te donne le résultat

Eléphanteau du PHP | 18 Messages

08 sept. 2010, 13:48

voici mon code ce qui va peu être vous donner un apercu et me corriger sur mes erreures:
<html>
    <head><title>Votre alarme</title></head>
    <body>
        <h1>Déterminez votre centrale d'alarme</h1>
        <h2>Entrez les données suivantes </h2>
        <form name="formulaire" method="post" action="ALARME1.php">
            Nombre de sirène interne : <input type="text" name="sireneint"/> <br/>
            Nombre de sirène externe: <input type="text" name="sireneext"/> <br/>
            Nombre de clavier : <input type="text" name="clavier"/> <br/>
			Nombre d'utilisateur : <input type="text" name="utilisateur"/> <br/>
			Nombre de secteur : <input type="text" name="secteur"/> <br/>
			Télésurveillance (oui / non): <input type="text" name="tele"/> <br/>
			<h3>Matériel filaire </h3>
			Détecteur infrarouge : <input type="text" name="infrarouge"/> <br/>
			Détecteur Double technologie : <input type="text" name="double"/> <br/>
			Détecteur longue portée : <input type="text" name="longue"/> <br/>
			Contact de porte : <input type="text" name="porte"/> <br/>
			Contact d'ouverture : <input type="text" name="ouverture"/> <br/>
			<h3>Matériel radio </h3>
			Détecteur infrarouge : <input type="text" name="rinfrarouge"/> <br/>
			Contact d'ouverture : <input type="text" name="rouverture"/> <br/>
			
            <input type="submit" name="valider" value="OK"/>
        </form>
        <?php
			foreach ($_POST as $post) //cette boucle permet de mettre à zéro tous les champs qui n'ont pas été remplis
			{
			if (empty($post))
			$post = 0;
			}
			if(isset($_POST['valider'])){
            $sireneint=$_POST['sireneint'];
            $sireneext=$_POST['sireneext'];
            $clavier=$_POST['clavier'];
			$infrarouge=$_POST['infrarouge'];
			$double=$_POST['double'];
			$longue=$_POST['longue'];
			$porte=$_POST['porte'];
			$ouverture=$_POST['ouverture'];
			$rinfrarouge=$_POST['rinfrarouge'];
			$rouverture=$_POST['rouverture'];
			$utilisateur=$_POST['utilisateur'];
			$secteur=$_POST['secteur'];			
			$tele=$_POST['tele'];
			
			$ef = $infrarouge + $double + $longue + $porte + $ouverture + $sireneint + $sireneext;
			$radio = $rinfrarouge + $rouverture;
			$pc = 'petite centrale';
			$mc = 'moyenne centrale';
									
			if (($ef <= 22)and($radio==0)and($clavier<4)and($secteur<3)and($utilisateur<21))
			{
				$variable= 'petite centrale';
			}
			else
			{
				if ( ($ef <= 10) and ($radio >= 1)and($clavier<4)and($secteur<3)and($utilisateur<21))
				{
					$variable = 'petite centrale';
				}
				else
				{
					$variable = 'moyenne centrale';
				}
				
			}
				if ($variable= 'petite centrale')
					{
						echo '<br />prévoir batterie 12V 7A<br />';
					}
				else
					{	
						 echo '<br />prévoir batterie 12V 18A<br />';
					}
				
							
				if ($tele=='oui')
					{
						echo '<br />prévoir abonnement<br />'; 
					}
					else
					{
						echo '';
					}
				if	(($radio)and($variable='petite centrale'))
					{
						echo '<br />- +1transpondeur radio<br />';
					}
					
				if (($ef>6) and ($ef<11)and($variable='petite centrale'))
				{
					echo '<br />- +1 transpondeur<br />';
				}
				elseif (($ef>10)and($ef<15)and($variable = 'petite centrale'))
				{
					echo '<br />- +2 transpondeurs<br />';
				}
				elseif (($ef>14)and($ef<19)and($variable='petite centrale'))
				{
					echo '<br />- +3 transpondeurs<br />';
				}
				elseif (($ef>18)and($ef<23)and($variable='petite centrale'))
				{
					echo '<br />- +4 transpondeurs<br />';
				}
				
				if (($ef>8)and($ef<13)and($variable='moyenne centrale'))
				{
					echo '<br />- +1 transpondeur<br />';
				}
				
				echo $variable;
				
				
		}
        ?>
    </body>
</html>

Mammouth du PHP | 686 Messages

08 sept. 2010, 13:57

Attention dans tes conditions !!
if($variable='petite centrale')
Toujours mettre == pour comparer ta variable à une donnée
Si tu mets qu'un = tu lui donne cette valeur !

La synthaxe correcte est
if($variable=='petite centrale')
Pour l'ensemble des condition le mieux pour voir les erreur c'est que tu essaie ;)
Mais verifie d'abord ta synthaxe !

Eléphanteau du PHP | 18 Messages

08 sept. 2010, 14:00

la le probleme c'est qu'au final j'ai toujours petite centrale et non moyenne comme je le voudrais (ps j'ai rajouté un == au $variable=='petite centrale'

Eléphanteau du PHP | 18 Messages

08 sept. 2010, 14:04

c'est ce que j'ai fait mais cela ne fonctionne toujours pas

Mammouth du PHP | 686 Messages

08 sept. 2010, 14:07

c'est ce que j'ai fait mais cela ne fonctionne toujours pas
Ou cela ne fonctionne pas ?

Eléphant du PHP | 74 Messages

08 sept. 2010, 14:15

Etant donner que tu as souvent la même variable met un code pour te reperer pendant le debogage.
if ($variable == 'petite centrale #1')
if ($variable == 'petite centrale #2')
etc... ainsi tu t'y retrouvera plus facilement.

Eléphanteau du PHP | 18 Messages

08 sept. 2010, 14:34

autant pour moi, j'ai fait une erreure qui n'a rien avoir, désormais (et pour le moment) tout fonctionne
Merci de ta précieuse aide

Mammouth du PHP | 686 Messages

08 sept. 2010, 14:37

Parfait alors :wink: