[PHP] Deux situations qui me pose problème

Fermé
Noobeuh - 4 déc. 2007 à 14:13
Pi_Xi Messages postés 2244 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 22 janvier 2016 - 9 déc. 2007 à 00:53
Boujour, donc voilà j'ai deux problème concernant un code php.
Le premier:
Puis je utiliser cette syntaxe:

if ($variable_1 == 3 AND ($valeur_2 == 2 OR $valeur_2 == 8))
{
instruction A
}

Oui suis je obligé de me répéter:

if ($variable_1 == 3 AND $valeur_2 == 2)
{
instruction A
}

elseif ($variable_1 == 3 AND $valeur_2 == 8)
{
instruction A
}

?

Deuxième question:

$colonne_1 = array($valeur_case[0], $valeur_case[3], $valeur_case[6]);
$valeur_case[0] = 1;
$valeur_case[3] = 1;

$numero_case_vide = array_search(NULL, $colonne_1);
$colonne_1[$numero_case_vide] = 2;

Avec ce code, j'obtiens $colonne_1[2] = 2
Mais est ce que la variable $valeur_case[6] vaut 2 ? ><

Merci d'avance pour vos réponses. :)

22 réponses

Pi_Xi Messages postés 2244 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 22 janvier 2016 149
4 déc. 2007 à 14:30
Bonjour,

1) la première syntaxe est bonne, pas besoin de te répéter heureusement, ça compliquerait bien les programmes...! Au passage tu peux aussi écrire "&&" à la place de AND et "||" à la place de "OR"

2) pourquoi tu l'affiche pas $valeur_case[6] pour voir!??
=> print_r($tab); affiche le tableau pour info.
0
Profil bloqué
4 déc. 2007 à 14:33
premier:
<?php
if ($variable_1 == 3 && ($valeur_2 == 2 || $valeur_2 == 8))
{
instruction A
}
?>
second:
tu n'as affecté aucune valeur à $valeur_case[6].Comment veut tu kil te rende quelque choz??
0
Pi_Xi Messages postés 2244 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 22 janvier 2016 149
4 déc. 2007 à 14:39
Il a utilisé array_search()..., puis il attribue une valeur aux valeurs NULL du tableau. Y'a une logique dans son raisonnement.

Enfin on apprend bcp par soit-même et il n'a pas besoin d'aide pour voir s'il y a qqch dans sa variable.
0
Merci Pi_Xi pour tes réponses.
J'ai pas le moyen de vérifier là c'est pour ça, je le ferai ce soir.
Bonne journée, et à plus tard peut être. ^^'
0
Pi_Xi Messages postés 2244 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 22 janvier 2016 149
4 déc. 2007 à 14:56
En fait tu verras que par défaut, les valeurs d'un tableau ne sont pas 'NULL'
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Si un peu plus haut dans le code j'ai la ligne suivante:

$valeur_case = array (NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);

La valeur de $valeur_case[6] est bien égale à NULL non?

$colonne_1 = array($valeur_case[0], $valeur_case[3], $valeur_case[6]);
$valeur_case[0] = 1;
$valeur_case[3] = 1;

$valeur_case[6] = NULL ?
0
Pi_Xi Messages postés 2244 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 22 janvier 2016 149
4 déc. 2007 à 15:10
ah ben si tu nous dit pas tout, on peut pas te répondre hein...!

Au début, tu attribue donc à $valeur_case[6] la valeur "NULL" ; mais ensuite, tu écrase $valeur_case[6] avec la valeur '2'. Ca ne veux pas dire que tu attribue la valeur '2' à $valeur_case[6], tu n'y a pas touché à cette variable.
0
Bah, euh, voui.
Ok.
(pourtant hier ca marchait pas... T_T)
0
Pi_Xi Messages postés 2244 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 22 janvier 2016 149
4 déc. 2007 à 15:16
euhh je viens d'éditer ; c'est quoi qui marchait pas?

https://openclassrooms.com/fr/
0
Merci pour le lien, je bosse déjà avec ce tuto. :)

C'est donc ça. La variable $valeur_case[6] disparait et j'ai :

$colonne_1 = array($valeur_case[0], $valeur_case[3], 2)

Bon au moins je sais pourquoi ca marche pas. :D
Encore merci.
0
J'ai trouvé une solution:


$colonne_1 = array($valeur_case[0], $valeur_case[3], $valeur_case[6]);
// en gros j'ai 2 case qui ont une valeur et la dernière vaut toujours NULL

$numero_case_vide = array_search(NULL, $colonne_1);
if($numero_case_vide == 0)
{
$valeur_case[0] = 4;
}

elseif $numero_case_vide == 1)
{
$valeur_case[3] = 4;
}

else // $numero_case_vide == 2
{
$valeur_case[6] = 4;
}

Mais ca fait sacrément plus long qu'avant. Et je vais devoir répéter l'opération pour colonne_2, colonne_3, ligne_1, 2 et 3, et diagonale_1 et 2.

Penses tu qu'il y aurait un autre moyen de procéder?
0
Pi_Xi Messages postés 2244 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 22 janvier 2016 149
4 déc. 2007 à 19:51
ah je savais pas que tu cherchais une solution, mdr

C'est quoi le problème? Tu veux faire quoi?

Faut arrêter la beuh hein ;o)
0
Je fume pas, ça liquéfie le cerveau.
Oui je cherchais une solution. Je l'ai trouvé mais elle va me ralonger beaucoup le code.
Mais bon. J'suis plus à une centaine de ligne près. :fou:
0
Pi_Xi Messages postés 2244 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 22 janvier 2016 149
5 déc. 2007 à 16:03
if($numero_case_vide == 0)
{
$valeur_case[0] = 4;
}

elseif $numero_case_vide == 1)
{
$valeur_case[3] = 4;
}

else // $numero_case_vide == 2
{
$valeur_case[6] = 4;
} 
équivaut à:
for(i=0;i<3;i++){

  if($numero_case_vide == i)
  {
    $valeur_case[i*3] = 4;
  }

}
0
:)

Je sais pas encore me servir bien des boucles. Merci. Beaucoup.
0
Et sinon, ca corresponds à quoi i ? C'est une variable? Pourquoi ya pas le $ devant? n_n
0
C'est bon, je me rapproche du bout du tunnel ! :' )

Encore merci.
0
Pi_Xi Messages postés 2244 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 22 janvier 2016 149
5 déc. 2007 à 19:43
lol...

Y'a pas le "$" parce que g écrit ça dans le speed et j'ai tappé le "for" comme en C, dsl.

Je te rassure, c'est pas le nombre imaginaire i² = -1 ;oP

Les boucles ça fait partie des bases, ça s'apprend très vite et c'est fort utile!
0
Oui j'ai vu ça. =)
J'suis trop content, mon morpion marche enfin. :')
0
Pi_Xi Messages postés 2244 Date d'inscription samedi 24 mars 2007 Statut Membre Dernière intervention 22 janvier 2016 149
6 déc. 2007 à 17:32
Essaye le Master Mind ;o)

Un exo qui m'avait bcp amusée, c'est de programmer un générateur de carrés magiques ^^ mais on pas pas jouer avec :o(

Y'a le sudoku aussi, c'est à la mode.
0
Euuuh ouaih, pourquoi pas après tout. n_n
0