Erreur boucle Php/mysql

Résolu
alphonse -  
 le père -
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. le père
     
    Bonjour

    Quel est le message d'erreur ?
    0
  2. alphonse
     
    Parse error: parse error in j:\site\easyphp1-8\www\site1\index.php on line 96
    0
  3. alphonse
     
    ligne 96 qui est : foreach( $champs = mysql_fetch_row($result)){
    0
  4. le père
     
    Oups... en effet, grosse erreur que je n'avais même pas vue
    pas foreach, mais while...
    while( $champs = mysql_fetch_row($result))
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. alphonse
     
    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
  7. le père
     
    Il fallait s'y attendre :-)
    $result = mysql_query($sql) or die(mysql_error());
    pour savoir d'où vient l'erreur.
    0
  8. alphonse
     
    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
  9. le père
     
    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
  10. alphonse
     
    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
  11. alphonse
     
    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
  12. le père
     
    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
  13. alphonse
     
    Non je ne savais pas inverser une condition. Dans ce cas, je comprend mieux la fonction de !isset...
    0
  14. le père
     
    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