afficher valeur à la position dans array lors d'une boucle

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : afficher valeur à la position dans array lors d'une boucle

par spirou » 18 févr. 2006, 23:40

C'était tout simple, encore fallait t-il y penser.

Merci beaucoup :D

par Ultiny » 18 févr. 2006, 23:29

Je me suis permis de reprendre ton code d'une autre mannière.
<?php

if (in_array($_GET['lettre'], $lettres_mot))
{
	for ($i=0; $i != $nbr_lettres; $i++)
	{
		if ($lettres_mot[$i] == $_GET['lettre'])
		{
			echo "Il se trouve à la case ".$i;
			// ici je souhaiterais que $choix soit afficher seulement à sa position dans $lettres_mots
			echo $_GET['lettre']." ";
		}
		else
		{
			echo '_ ';
		}   
	}
}

?>

par Ultiny » 18 févr. 2006, 23:22

Oui tu mets une condition du genre :

while...

if $_get = $tableau[position]
// affichage de la position

fermeture de la while

afficher valeur à la position dans array lors d'une boucle

par spirou » 18 févr. 2006, 23:14

Bonsoir,

Je désires que lors d'une boucle, une valeur soit affichée seulement à la position de cette valeur dans une chaine.

Mais, je ne sais pas comment faire.

Je m'explique mieux, j'ai un mot que je transforme en tableau, je vérifie si le $_GET de ma page est présent dans ce mot, et lors de ma boucle, je souhaite que ma valeur soit affichée seulement à la position de ce $_GET, car pour l'instant ça m'affiche à chaque tour la valeur de $_GET.

Je sais pas si je suis assez clair.

Ensuite, pas trop d'importance, est-ce qu'il est possible de fusionner mes 2 requêtes en une seule.
// nbre de mots ds la table
$sql1 = "SELECT max(id) from dictionnaire";
$req1 = mysql_query($sql1);
$nbr_mot = mysql_result($req1, 0);

// sélection d'un id au hasard
$num_mot = rand(1, $nbr_mot);

// sélection du mot 
$sql2 = "SELECT mot FROM dictionnaire WHERE id=" . $num_mot . "";
$req2 = mysql_query($sql2) or die (mysql_error());
$mot = mysql_result($req2, 0) or die (mysql_error());

$nbr_lettres = strlen($mot);
$mot = strtoupper($mot);  
$lettres_mot = str_split($mot);

if(isset($_GET['lettre']))
{
  if(in_array($_GET['lettre'], $alphabet))
  {
      $choix = $_GET['lettre'];
      for($i=0; $i!=$nbr_lettres; $i++)
	    {
          if(in_array($choix, $lettres_mot))
          {
          // ici je souhaiterais que $choix soit afficher seulement à sa position dans $lettres_mots
              echo $choix . " ";
          }
          else
          {
              echo '_ ';
          }   
      }
  }
  else
  {
      header('location: erreur.php');
  }
}
Voilà :P