Erreur boucle Php/mysql

Résolu/Fermé
alphonse - 16 mai 2009 à 00:00
 le père - 16 mai 2009 à 08:39
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'];
A voir également:

14 réponses

Bonjour

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

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

Posez votre question
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
Il fallait s'y attendre :-)
$result = mysql_query($sql) or die(mysql_error());
pour savoir d'où vient l'erreur.
0
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
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
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
if (isset($hdispo['matin']))...
0
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
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
Non je ne savais pas inverser une condition. Dans ce cas, je comprend mieux la fonction de !isset...
0
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