Operateur php

Résolu/Fermé
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017 - 2 févr. 2016 à 16:19
Lucryio Messages postés 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017 - 2 févr. 2016 à 19:22
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
2 févr. 2016 à 16:55
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 1769 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 19 novembre 2016 264
Modifié par gardiendelanuit le 2/02/2016 à 16:48
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 lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
Modifié par Pitet le 2/02/2016 à 16:50
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 204 Date d'inscription samedi 4 janvier 2014 Statut Membre Dernière intervention 4 juin 2017
2 févr. 2016 à 19:22
rho le naze que je suis j'ai mis fetch au lieu de fetchcolumn ^^
Merci à vous de me l'avoir fait remarqué ;)
0