Erreur boucle Php/mysql

Résolu
Bonjour, Qu'est ce qui cloche là dessus et pourquoi ? On m'indique une erreur... Je pense que mon erreur vient de $hdispo[$champs[0]] = $champs[1]; ... Mais j'ai pas compris l'utilité de ce morceau...

$sql = "SELECT titre, count(*) FROM questionaire GROUP BY hdispo";
$result = mysql_query($sql);

foreach( $champs = mysql_fetch_row($result)){
$hdispo[$champs[0]] = $champs[1];
}
$matin = $hdispo['matin'];
$aprem = $hdispo['apres-midi'];
$soir = $hdispo['soir'];

14 réponses

  1. Non je ne savais pas inverser une condition
    Ouh la la ! laisse tout tomber (provisoirement) et lis un petit tuto sur le PHP, parce que là, c'est quand même une grosse lacune !
    Au passage, tu pouvais obtenir le même effet avec un 'else'.

    Bon courage pour la suite
    0
    1. Non je ne savais pas inverser une condition. Dans ce cas, je comprend mieux la fonction de !isset...
      0
      1. Moi je voulais en False
        ????
        tu ne sais pas inverser une condition de PHP avec ! :

        If ( ! isset($hdispo['matin']))
        {
        echo ==> Seulement si la valeur est false.
        }
        ou alors je n'ai pas compris ce que tu voulais dire ...
        0
        1. Pas facile a utiliser cet isset... D'après : http://www.manuelphp.com/php/function.isset.php Moi je voulais en False...

          If (isset($hdispo['matin']))
          {
          echo ==> Seulement si la valeur est right.

          }

          Alors je vais faire :
          , initialise au début de ton script $hdispo['matin']=0;
          Mais sa marche pas... Bon je réfléchirais demain...

          Merci le père pour ton aide précieuse.
          0
          1. if (isset($hdispo['matin']))...
            0
            1. J'ai remplit ma BDD et en effet sa marche ... Il n'y a pas une fonction du genre ? :
              :
              If $matin is null = 0 ...

              ???

              Mettre

              $hdispo['matin']=0
              $hdispo['apres-midi']=0
              $hdispo['soir']=0

              Sa pose problème ...
              0
              1. S'il n'y a pas encore de 'matin' etc.. dans ta base, on n'est jamais entré dans la boucle while et donc la variable $hdispo n'a jamais été créée, puis qu'elle est créée dans cette boucle. Donc l'erreur que tu vois est parfaitement normale.
                Si tu veux l'éviter, initialise au début de ton script $hdispo['matin']=0; (idem pour apres-midi et soir)
                0
                1. Oups, une petite erreur de frappe dans ma table SQL ... Ce n'était pas titre mais hdispo dans SELECT...

                  Par contre sa me laisse :
                  Notice: Undefined variable: hdispo in j:\info gestion\easyphp1-8\www\fixie\index.php on line 99

                  Notice: Undefined variable: hdispo in j:\info gestion\easyphp1-8\www\fixie\index.php on line 100

                  Notice: Undefined variable: hdispo in j:\info gestion\easyphp1-8\www\fixie\index.php on line 101

                  C'est à dire :
                  $matin = $hdispo['matin'];
                  $aprem = $hdispo['apres-midi'];
                  $soir = $hdispo['soir'];

                  Normalement sa devrait etre 0... Comme il n'y a pas encore de "matin" "apres-midi" "soir" dans la BDD
                  0
                  1. Il fallait s'y attendre :-)
                    $result = mysql_query($sql) or die(mysql_error());
                    pour savoir d'où vient l'erreur.
                    0
                    1. merci ... Mais sa me remplace l'erreur par :

                      Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in j:\site\easyphp1-8\www\site1\index.php on line 96

                      Notice: Undefined variable: hdispo in j:\site\easyphp1-8\www\site1\index.php on line 99

                      Notice: Undefined variable: hdispo in j:\site\easyphp1-8\www\site1\index.php on line 100

                      Notice: Undefined variable: hdispo in j:\site\easyphp1-8\www\site1\index.php on line 101

                      ???
                      0
                      1. Oups... en effet, grosse erreur que je n'avais même pas vue
                        pas foreach, mais while...
                        while( $champs = mysql_fetch_row($result))
                        0
                        1. ligne 96 qui est : foreach( $champs = mysql_fetch_row($result)){
                          0
                          1. Parse error: parse error in j:\site\easyphp1-8\www\site1\index.php on line 96
                            0
                            1. Bonjour

                              Quel est le message d'erreur ?
                              0