Operateur php

Résolu
Lucryio Messages postés 206 Date d'inscription   Statut Membre Dernière intervention   -  
Lucryio Messages postés 206 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je viens vers vous pour 1 problème qui est le suivant :

Tous d'abord, voici mon code :

elseif ($verif_combat_en_cours >=1)
{
	?>
	<script> alert('Votre adversaire à déjà un combat en cours !!!'); </script>
	<meta http-equiv="refresh" content="0;url=http://pokemon-history.pe.hu/Jeu/inde.php"/>
	<?php
}
elseif ($verif_combat_en_cours2 >=1)
{
	?>
	<script> alert('Votre avez déjà un combat en cours !!!'); </script>
	<meta http-equiv="refresh" content="0;url=http://pokemon-history.pe.hu/Jeu/inde.php"/>
	<?php
}


Donc mon souci c'est que le premier elseif s'execute peux importe la valeur de ma variable qui est la suivante :

$verif_combat_en_cours = $bdd->query("SELECT COUNT('ID_receveur') FROM combats WHERE ID_receveur='".$membre_co2['membre_id']."'")->Fetch();
	$verif_combat_en_cours2 = $bdd->query("SELECT COUNT('ID_envoyeur') FROM combats WHERE ID_envoyeur='".$ID."'")->Fetch();


Donc dans la logique que je voudrais c'est que si la valeur de la variable est 0 alors on passe sinon on stop et on affiche le message d'erreur (le alert dans les balise script).

Si vous avez une idée, je suis preneur.

3 réponses

Utilisateur anonyme
 
Bonjour

Attention, un fetch ne te rend pas un nombre, donc inutile d'essayer de le comparer à une valeur numérique.

fetch te rend (généralement, car en fait ça dépend de certaines options) un tableau car un SELECT peut fournir plusieurs valeurs par ligne (si tu demandes plusieurs champs). Comme tu demandes une seule valeur dans ta requête, elle est à l'indice 0 du tableau. Il faut donc tester
elseif ($verif_combat_en_cours[0] >=1)

Tu peux vérifier le contenu de ta variable avec un print_r :
print_r($verif_combat_en_cours);
, ça devrait t'aider à comprendre
1
gardiendelanuit Messages postés 1770 Date d'inscription   Statut Membre Dernière intervention   264
 
Bonjour,

$verif_combat_en_cours 
peut-il être à 0?
J'imagine que oui, mais as-tu vérifié sa valeur dans tous tes tests?
EDIT: Si tu ne fais pas ton test sur un array par exemple..

Merci de mettre "Résolu" quand le problème est réglé!
La connaissance c'est comme la confiture: moins on en a et plus on l'étale.
0
Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
Salut,

le premier elseif s'execute peux importe la valeur de ma variable
Non, d'après ta condition, le premier elseif ne s'exécute que si la variable $verif_combat_en_cours est supérieur ou égale à 1

Une première idée serait donc de vérifier quelle est la valeur de la variable $verif_combat_en_cours :
var_dump($verif_combat_en_cours);
0
Lucryio Messages postés 206 Date d'inscription   Statut Membre Dernière intervention  
 
rho le naze que je suis j'ai mis fetch au lieu de fetchcolumn ^^
Merci à vous de me l'avoir fait remarqué ;)
0