Page 1 sur 2

message aléatoire ajotant une somme a un nombre

Posté : 20 août 2010, 21:27
par bly
Bonjours
Je voudrait faire en sorte qu'a l'affichage d'un message il y est une addition d'une somme a une valeur d'un tableaux
voila le code que j'utilise
<?php
$candidat = array('vie'=>'25',
                  'experience'=>'00',
                  'attaque'=>array('min'=>'5,'max'=>'7'));
foreach($perso as $cle => $element)
{
    echo $cle;

    if( !is_array( $element ))
    {
        echo '  :  '. $element . '<br />'; 
    }
    else
    {
        foreach( $element as $a => $b )
        {
            echo $a . '  :  ' . $b.'<br />';
        }
    }
}



 $coup = rand($perso['attaque']['min'],$perso['attaque']['max']);

?>
<?php  
if (!empty($_POST['envoyer']))
{
   $quotes[] = "message 1"; 
   $quotes[] = "message 2"; 
   $quotes[] = "message 3"; 
   $quotes[] = " message 4";
   srand ((double) microtime() * 1000000); 
   $randomquote = rand(0,count($quotes)-1);  

   echo "<p>" . $quotes[$randomquote] . "</p>";
   
   
}
?>
je vais faire un exemple
il y a le tableau ce qui donne sa :
age:25
année:00
hauteur:
min:5
max:7

après il y a les messages qui apparaissent aléatoirement en appuyant sur le bouton envoyer , je voudrais que par exemple que si le message c'est " message 1" , cela rajoute +10 a l'experience , et quand l'experience atteint un certain niveaux , tels que 60 cela rajoute + 10 a la vie et + 5 aux min et max de l'attaque.

Re: message aléatoire ajotant une somme a un nombre

Posté : 20 août 2010, 22:34
par xTG
Bah je vois pas vraiment ce qui est compliqué. :/
if( $quotes[$randomquote] == "Message 1" )
  $candidat['experience'] += 10;
if( $candidat['experience'] == 60 )
{
  //pareil pour les autres
}
Mais il serait plus facile d'avoir des clés fixes dans ton array, car là pour être sûr que le message 1 est bien en position 1 dans l'array...
Un sacripant qui vient modifier le code sans se soucier de cela, car ton code ne laisse pas transparaitre l'utilité de cela via cette écriture, et pouf !

Re: message aléatoire ajotant une somme a un nombre

Posté : 20 août 2010, 23:26
par bly
j'ai mis comme sa mais il me dit qu'il y a un probleme
<?php  
if (!empty($_POST['envoyer']))
{
   $quotes[] = "message 1"; 
   $quotes[] = "message 2"; 
   $quotes[] = "message 3"; 
   $quotes[] = " message 4";
   srand ((double) microtime() * 1000000); 
   $randomquote = rand(0,count($quotes)-1);  

   echo "<p>" . $quotes[$randomquote] . "</p>";
   
 
if( $quotes[$randomquote] == "Message 1" )
  $candidat['experience'] += 10;
if( $candidat['experience'] == 60 )
{
  
}
 


?>

Re: message aléatoire ajotant une somme a un nombre

Posté : 21 août 2010, 00:40
par xTG
Oui il te dit que $candidat n'existe pas.
Cherches un peu...

Re: message aléatoire ajotant une somme a un nombre

Posté : 21 août 2010, 12:21
par bly
j'ai modifier mon code ce qui me donne sa :
<?php
$a1 = array('vie' => 25);
   
                
foreach($a1 as $cle => $element)
{
    echo $cle;

    if( !is_array( $element ))
    {
        echo '  :  '. $element . '<br />'; 
    }
    
}

$a2 = array('experience' => 00);
   
                
foreach($a2 as $cle => $element)
{
    echo $cle;

    if( !is_array( $element ))
    {
        echo '  :  '. $element . '<br />'; 
    }
    
}
$a3 = array('attaque'=>array('min'=>5,'max'=>7));

 foreach($a3 as $cle => $element)
{
    echo $cle;

    if( !is_array( $element ))
    {
        echo ' : ' . $element . '<br />';  
    }
    else
    {
        foreach( $element as $a => $b )
        {
            echo '<br />'.$a . ' : ' . $b . '<br />';
        }
    }
}


?>


<form action="index.php" method="post">
        <p>
        <input type="submit" name="envoyer" value="Envoyer" />
	</p>
</form>

 
<?php  
if (!empty($_POST['envoyer']))
{
   $quotes[] = "message 1"; 
   $quotes[] = "message 2"; 
   $quotes[] = "message 3"; 
   $quotes[] = " message 4";
   srand ((double) microtime() * 1000000); 
   $randomquote = rand(0,count($quotes)-1);  

   echo "<p>" . $quotes[$randomquote] . "</p>";
   
 
}

if( $quotes[$randomquote] == "Message 1" )
  $a2['experience'] += 10;
if( $a2['experience'] == 60 )
{
  
}



?>
j'ai plus de message d'erreur par contre quand j'appuie sur envoyer et que le message aléatoire "message 1" apparait , cela ne rajoute pas +10 au au nombre 00 de l'experience

Re: message aléatoire ajotant une somme a un nombre

Posté : 21 août 2010, 12:42
par xTG
Tu as "Message 1" au lieu de "message 1".

Ensuite si tu souhaites garder les informations d'une page à une autre tu devrais passer par les sessions :
http://phpdebutant.org/article69.php

Re: message aléatoire ajotant une somme a un nombre

Posté : 21 août 2010, 13:31
par bly
j'ai modifié en mettant des session ce qui me donne cela:
<?php
 echo '<p>vie:</p>';
$_SESSION['vie'] = 25;
echo $_SESSION['vie'];
echo '<p>experience:</p>';
$_SESSION['experience'] = 00;
echo $_SESSION['experience'];
echo '<p>attaque:</p>';
echo '<p>min:</p>';
$_SESSION['min'] = 5;
echo $_SESSION['min'];
echo '<p>max:</p>';
$_SESSION['max'] = 7;
echo $_SESSION['max'];
?>



<form action="index.php" method="post">
        <p>
        <input type="submit" name="envoyer" value="Envoyer" />
        </p>
</form>

 
<?php  
if (!empty($_POST['envoyer']))
{
   $quotes[] = "message 1"; 
   $quotes[] = "message 2"; 
   $quotes[] = "message 3"; 
   $quotes[] = " message 4";
   srand ((double) microtime() * 1000000); 
   $randomquote = rand(0,count($quotes)-1);  

   echo "<p>" . $quotes[$randomquote] . "</p>";
   
 
}

if( $quotes[$randomquote] == "message 1" )
  $_SESSION['experience'] += 10;
if( $_SESSION['experience'] == 60 )
{
  
}



?>
par contre il me marque 2 erreurs:
Notice: Undefined variable: randomquote in C:\wamp\www\index.php on line 41

Notice: Undefined variable: quotes in C:\wamp\www\index.php on line 41

Re: message aléatoire ajotant une somme a un nombre

Posté : 21 août 2010, 13:45
par xTG
Si $_POST['envoyer'] n'existe pas, tes variables ne sont pas crées donc le message d'erreur apparaît.
Quel est l'intérêt de faire le calcul si le formulaire n'est pas posté ?

PS : tu as oublié le session_start()

Re: message aléatoire ajotant une somme a un nombre

Posté : 21 août 2010, 14:26
par bly
ba enfaite j'ai fais comme sa pour qu'en appuyant sur le bouton envoyer un message aléatoire s'affiche sinon je vois pas comment faire .

Re: message aléatoire ajotant une somme a un nombre

Posté : 21 août 2010, 15:07
par xTG
Tu n'as semble-t-il pas compris.
Tu n'as modification de ces attributs que si le formulaire a été posté.
Donc pourquoi toujours vérifier alors qu'il serait mieux de le mettre en même temps que la vérification du formulaire.

Re: message aléatoire ajotant une somme a un nombre

Posté : 21 août 2010, 15:21
par bly
a ok mais je fais comment alors car la je vois pas

Re: message aléatoire ajotant une somme a un nombre

Posté : 21 août 2010, 15:38
par xTG
if (!empty($_POST['envoyer']))
{
   $quotes[] = "message 1";
   $quotes[] = "message 2";
   $quotes[] = "message 3";
   $quotes[] = " message 4";
   srand ((double) microtime() * 1000000);
   $randomquote = rand(0,count($quotes)-1);  

   echo "<p>" . $quotes[$randomquote] . "</p>";
   if( $quotes[$randomquote] == "message 1" )
    $_SESSION['experience'] += 10;
  if( $_SESSION['experience'] == 60 )
  {
 
  }
 
}

Re: message aléatoire ajotant une somme a un nombre

Posté : 21 août 2010, 15:54
par bly
a oui ok par contre la sa change pas le nombre de l'experience quand " message 1" s'affiche , l'experience reste a 0

Re: message aléatoire ajotant une somme a un nombre

Posté : 21 août 2010, 16:28
par xTG
C'est normal, quand tu recharges la page tu réassignes 00 dans la variable. Mets un affichage au moment où il ajoute 10 et tu verras que l'affichage se fait bien.
L'initialisation ne doit se faire qu'une seule fois, quand la variable n'existe pas.

On opère ainsi :
if( !isSet($_SESSION['ma_var']) )// La variable n'existe pas
  $_SESSION['ma_var'] = "valeur d'initialisation"; // On l'initialise
Comme les variables de session se gardent d'une page à une autre du moment que la session n'est pas terminée cette initialisation ne se lance qu'une seule fois.

Re: message aléatoire ajotant une somme a un nombre

Posté : 21 août 2010, 16:40
par bly
ou dois-je le placer ?? car je j'ai essayer de le mettre dans plusieur endroits mais cela ne marche pas