begin process at 2012 05 30 17:03:21
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Mysql_num_rows()


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Mysql_num_rows()

jeudi 20 janvier 2011 à 16:50:05 | Mysql_num_rows()

monoski


Coucou tout le monde,

bon je rencontre un petit problème qui m'énerve sérieusement :


Code PHP :
$evolution = mysql_query("SELECT C_carac_id FROM T_users_have_evolved WHERE C_carac_user_id='$user_id' AND C_carac_stat='degat'") or die(mysql_error());

$evolution_number = mysql_num_rows($evolution);


Voilà, bon mon but est de savoir combien d'entrée il y a dans ma base dans lesquelles :
C_carac_user_id='$user_id' et C_carac_stat='degat'

Donc je fais une requête ou je demande C_carac_id (id en autoincremente de la table analysée), puis je fais un mysql_num_rows...

Seulement ça marche parfaitement lorsque je fais C_carac_stat='attaque' mais pas quand je fais C_carac_stat='degat', ce qui est drôle c'est que dans le deuxième cas de figure dans n'importe quelle hypothèses, il y aura toujours un nombre de ligne égal à deux, je ne comprends vraiment pas pourquoi... Je suis entrain de devenir complètement fou.

Alors j'aimerai savoir s'il n'y a pas un moyen plus optimisé pour compter le nombre d'entrée existant pour certaines valeurs, mais j'aimerai savoir comment même quand ma table est vide de toute entrée, ce foutu mysql_num_rows renvoi 2 !


En fait, j'ai nuancé ce problème, il m'a pris la journée à vrai dire alors que c'est quelque chose de basique et je suis dégouté... Donc si vous avez une piste n'hésitez pas.

PS : $user_id n'est pas éronnée...

Bonne journée ou bonne nuit :p
jeudi 20 janvier 2011 à 17:17:28 | Re : Mysql_num_rows()

cod57

bonjour

as tu essayé

$evolution = mysql_query("SELECT *
FROM `T_users_have_evolved`
WHERE `C_carac_user_id` LIKE '".$user_id."'
AND `C_carac_stat=degat` LIKE 'degat' ") or die(mysql_error());

si tu fais $evolution_number = mysql_num_rows($evolution);
vide $evolution_number avant de relancer le script

$evolution_number = "";
$evolution = mysql_query("SELECT *
FROM `T_users_have_evolved`
WHERE `C_carac_user_id` LIKE '".$user_id."'
AND `C_carac_stat=degat` LIKE 'degat' ") or die(mysql_error());
echo $evolution_number = mysql_num_rows($evolution);

a++



vendredi 21 janvier 2011 à 03:58:10 | Re : Mysql_num_rows()

monoski

Merci de ta réponse, mais celle-ci ne fonctionne pas malheureusement ^^

Bon allez je vous passe mon code, c'est long fastidieux mais au moins tout sera compris :

Code PHP :
<?php session_start();
require ('auth.php');
include 'include/bdd.php';
mysql_query("SET NAMES UTF8");
$_GET['carac'] = $carac;
function evolve($carac)
{
	$pseudo = $_SESSION['username'];
	//initial cost for caracteristics
    $ini_cost_attack = 1000;
	$ini_cost_movement = 150;
    $ini_cost_damage = 200;
    $ini_cost_power = 200;
    $ini_cost_hp = 1; 
	// Initial cost end
	if($carac == attack)
	{
		$value = mysql_query("SELECT user_id, attaque_max, pi_attaque, invest FROM elfik_user WHERE username='$pseudo'") or die(mysql_error());
		$fetch_value = mysql_fetch_array($value);
		if ($fetch_value['invest'] >= $fetch_value['pi_attaque'])
		{ 
			$new_pi = $fetch_value['invest'] - $fetch_value['pi_attaque'];
			$new_attaque_max = $fetch_value['attaque_max']+ 1;
			$user_id = $fetch_value['user_id'];
		//Definition of the future cost of the upgraded caracteristic !
			$evolution = mysql_query("SELECT C_carac_id FROM T_users_have_evolved WHERE C_carac_user_id='$user_id' AND C_carac_stat='attaque_max'") or die(mysql_error());
			$evolution_number = mysql_num_rows($evolution);
			//definition of the specific way to make PI's cost evolve !
			if($evolution_number <= 1)
			{
				$new_pi_cost = $ini_cost_attack;
			}
			if($evolution_number > 1)
			{
				$new_pi_cost = 3000;
			}
		mysql_query("UPDATE elfik_user SET attaque_max='$new_attaque_max', invest='$new_pi', pi_attaque='$new_pi_cost' WHERE username='$pseudo'") or die(mysql_error());
		mysql_query("INSERT INTO T_users_have_evolved(C_carac_user_id, C_carac_stat) VALUES ('$user_id','attaque_max')") or die(mysql_error());//On insÃ&#402;Â&#168;re le fait que le personnage a Ã&#402;©voluÃ&#402;©
		$backup = "Congratulation you upgrade your attack number !vous avez Ã&#402;©voluÃ&#402;© $evolution_number fois votre nombre d'attaque !";
		}
		else
		{
			$backup = "You don't have enough Investment Points to upgrade your attack number !";
		}
	}
	elseif($carac == mouvement)
	{
		$value = mysql_query("SELECT user_id, mouv_max, pi_move, invest FROM elfik_user WHERE username='$pseudo'") or die(mysql_error());
		$fetch_value = mysql_fetch_array($value);
		if ($fetch_value['invest'] >= $fetch_value['pi_move'])
		{ 
			$new_pi = $fetch_value['invest'] - $fetch_value['pi_move'];
			$new_mouv_max = $fetch_value['mouv_max']+ 1;
			$user_id = $fetch_value['user_id'];
		//Definition of the future cost of the upgraded caracteristic !
			$evolution = mysql_query("SELECT C_carac_id FROM T_users_have_evolved WHERE C_carac_user_id='$user_id' AND C_carac_stat='mouv_max'") or die(mysql_error());
			$evolution_number = mysql_num_rows($evolution);
			//definition of the specific way to make PI's cost evolve !
			if($evolution_number <= 1)
			{
				$new_pi_cost = 200;
			}
			if($evolution_number = 2)
			{
				$new_pi_cost = 300;
			}
			if($evolution_number = 3)
			{
				$new_pi_cost = 400;
			}
			if($evolution_number > 3)
			{
				$new_pi_cost = 600;
			}
		mysql_query("UPDATE elfik_user SET mouv_max='$new_mouv_max', invest='$new_pi', pi_move='$new_pi_cost' WHERE username='$pseudo'") or die(mysql_error());
		mysql_query("INSERT INTO T_users_have_evolved(C_carac_user_id, C_carac_stat) VALUES ('$user_id','mouv_max')") or die(mysql_error());//On insÃ&#402;Â&#168;re le fait que le personnage a Ã&#402;©voluÃ&#402;© 
		$backup = "Congratulation you upgrade your mouvement number ! vous avez Ã&#402;©voluÃ&#402;© $evolution_number fois vos mouvements !";
		}
		else
		{
			$backup = "You don't have enough Investment Points to upgrade your mouvement number !";
		}
	}
	elseif($carac == hp)
	{
		$value = mysql_query("SELECT user_id, pv_max, pi_pv, invest FROM elfik_user WHERE username='$pseudo'") or die(mysql_error());
		$fetch_value = mysql_fetch_array($value);
		if ($fetch_value['invest'] >= $fetch_value['pi_pv'])
		{ 
			$new_pi = $fetch_value['invest'] - $fetch_value['pi_pv'];
			$new_pv_max = $fetch_value['pv_max']+ 1;
			$user_id = $fetch_value['user_id'];
		//Definition of the future cost of the upgraded caracteristic !
			$evolution = mysql_query("SELECT C_carac_id FROM T_users_have_evolved WHERE C_carac_user_id='$user_id' AND C_carac_stat='pv_max'") or die(mysql_error());
			$evolution_number = mysql_num_rows($evolution);
			//definition of the specific way to make PI's cost evolve !
			if($evolution_number <= 1)
			{
				$new_pi_cost = 1;
			}
			if($evolution_number = 2)
			{
				$new_pi_cost = 2;
			}
			if($evolution_number > 2)
			{
				$new_pi_cost = $fetch_value['pi_pv'] + 1;
			}
			
		mysql_query("UPDATE elfik_user SET pv_max='$new_pv_max', invest='$new_pi', pi_pv='$new_pi_cost' WHERE username='$pseudo'") or die(mysql_error());
		mysql_query("INSERT INTO T_users_have_evolved(C_carac_user_id, C_carac_stat) VALUES ('$user_id','pv_max')") or die(mysql_error());//On insÃ&#402;Â&#168;re le fait que le personnage a Ã&#402;©voluÃ&#402;© 
		$backup = "Congratulation you upgrade your health points !";
		}
		else
		{
			$backup = "You don't have enough Investment Points to upgrade your health points !";
		}
	}
	elseif($carac == puissance)
	{
				$value = mysql_query("SELECT user_id, puissance, pi_puissance, invest FROM elfik_user WHERE username='$pseudo'") or die(mysql_error());
		$fetch_value = mysql_fetch_array($value);
		if ($fetch_value['invest'] >= $fetch_value['pi_puissance'])
		{ 
			$new_pi = $fetch_value['invest'] - $fetch_value['pi_puissance'];
			$new_pv_max = $fetch_value['puissance']+ 1;
			$user_id = $fetch_value['user_id'];
		//Definition of the future cost of the upgraded caracteristic !
			$evolution = mysql_query("SELECT C_carac_id FROM T_users_have_evolved WHERE C_carac_user_id='$user_id' AND C_carac_stat='puissance'") or die(mysql_error());
			$evolution_number = mysql_num_rows($evolution);
			//definition of the specific way to make PI's cost evolve !
			if($evolution_number <= 1)
			{
				$new_pi_cost =  $ini_cost_power;
			}
			if($evolution_number = 2)
			{
				$new_pi_cost = 250;
			}
			if($evolution_number > 2)
			{
				$new_pi_cost = $fetch_value['pi_puissance'] + 100;
			}
			
		mysql_query("UPDATE elfik_user SET puissance='$new_pv_max', invest='$new_pi', pi_puissance='$new_pi_cost' WHERE username='$pseudo'") or die(mysql_error());
		mysql_query("INSERT INTO T_users_have_evolved(C_carac_user_id, C_carac_stat) VALUES ('$user_id','puissance')") or die(mysql_error());//On insÃ&#402;Â&#168;re le fait que le personnage a Ã&#402;©voluÃ&#402;© 
		$backup = "Congratulation you upgrade your power !";
		}
		else
		{
			$backup = "You don't have enough Investment Points to upgrade your power !";
		}
	}
	elseif($carac == degat)
	{
$value = mysql_query("SELECT user_id, degat, pi_degat, invest FROM elfik_user WHERE username='$pseudo'") or die(mysql_error());
		$fetch_value = mysql_fetch_array($value);
		if ($fetch_value['invest'] >= $fetch_value['pi_degat'])
		{ 
			$new_pi = $fetch_value['invest'] - $fetch_value['pi_degat'];
			$new_attaque_max = $fetch_value['degat']+ 1;
			$user_id = $fetch_value['user_id'];
		//Definition of the future cost of the upgraded caracteristic !
			$evolution = mysql_query("SELECT C_carac_id FROM T_users_have_evolved WHERE C_carac_user_id='$user_id' AND C_carac_stat='degat'") or die(mysql_error());
			$evolution_number = mysql_num_rows($evolution);
			//definition of the specific way to make PI's cost evolve !
			if($evolution_number <= 1)
			{
				$new_pi_cost =  $ini_cost_damage;
			}
			if($evolution_number = 2)
			{
				$new_pi_cost = 250;
			}
			if($evolution_number > 2)
			{
				$new_pi_cost = $fetch_value['pi_degat'] + 100;
			}
		mysql_query("UPDATE elfik_user SET degat='$new_attaque_max', invest='$new_pi', pi_degat='$new_pi_cost' WHERE username='$pseudo'") or die(mysql_error());
		mysql_query("INSERT INTO T_users_have_evolved(C_carac_user_id, C_carac_stat) VALUES ('$user_id','degat')") or die(mysql_error());//On insÃ&#402;Â&#168;re le fait que le personnage a Ã&#402;©voluÃ&#402;©
		$backup = "Congratulation you upgrade your damages !vous avez Ã&#402;©voluÃ&#402;© $evolution_number fois votre nombre de degats !";
		}
		else
		{
			$backup = "You don't have enough Investment Points to upgrade your damages !";
		}
	}
	else
	{
		echo "What the hell are you trying to do ??? You have been reported !";
	}
echo "$backup";
}

evolve($carac);
mysql_close();
?>


Voilà est-ce que quelqu'un peut me dire ce qui ne va pas :'( la requête qui bogue fonctionne pourtant pour la première boucle if($carac == attack){}...

Snif je suis à bout là :'(

Bonne journée à tous =)
vendredi 21 janvier 2011 à 09:41:49 | Re : Mysql_num_rows()

cod57

bonjour

$user_id est peut être le prob si tu appelles la fonction plusieurs fois il doit rester une trace dans php de la variable précédente, $user_id n'est pas vider.
j'ai lu le code c'est vrai que la partie attack et degat se ressemblent.

dans la partie degat remplace voir
$fetch_value par $fetch_value_2 (partout), le tableau n'est peu etre pas ecraser ... je sais pas je l'avoue ton code à l'air correct.

un programmeur plus expert trouvera sans doute bne chance

A++
vendredi 21 janvier 2011 à 19:40:24 | Re : Mysql_num_rows()

monoski

Snif, le problème ne vient pas de là :'( et j'en ai profité pour tenter de réinitialiser toutes les variables :'( et ça ne marche pas snif !


Quelqu'un d'autre voit une erreur ou a une idée, ce qui est bizarre c'est que le nombre de row renvoyé est toujours égal à 2.
samedi 22 janvier 2011 à 19:00:56 | Re : Mysql_num_rows()

monoski

Toujours rien mes amis ?

J'ai abandonné à midi perso j'en peux plus :p si quelqu'un a un coup de génie :p


Bonne journée à tous =)


Cette discussion est classée dans : mysql, id, rows, num, carac


Répondre à ce message

Sujets en rapport avec ce message

mysql_num_rows() probleme avec la vérification du pseudonyme [ par BelphegorCLC ] Salut,voila j'ai un probleme avec la vérification du pseudonyme, j'ai déja bien cherché sur plusieurs forum et tuto, essayé plusieurs mise en forme de probleme mysql_fetch_row() et mysql_num_rows() [ par Zenith ] Bonjour, je suis en train de me faire un script de recherce dans une base de donnée, mais je rencontre des problemes. en effet, lors de l'execution de simple question. [ par Zebra1928 ] slt tous le monde je veux simplement comprendre c koi la différence entre @mysql_num_rows et mysql_num_rowsaussi entre @mysql_connect($host,$user,$p WHERE + mysql_num_rows [ par GuinaweK ] Quelqu'un saurait me dire si c'est possible d'arriver à lier une clause WHERE dans la requete SQL avec la commande mysql_num_rows ?Je me sers d'un mêm fonction mysql_num_rows() [ par cladx ] Bon voila je veus savoir si l'email est present dans la base de donnée donc justilise tous naturelement la fonction mysql_num_rows() dont voici une pa problème avec doublon dans ma classe de base de donnée [ par Dyr3e ] bonjour, j'ai un problème de Doublon avec la classe pour les base de donnée que j'utilise. Je n'arrive pas a trouver d'ou cela viens mais j'obtiens su Erreur: mysql_num_rows() [ par refkaben ] Bonjour à tous!J'ai une erreur qui ma prend la tete depuis hier!Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c mysql_num_rows [ par LordBob ] Bonjour a tous,en fait j'aimerais juste savoir, pour connaitre le nombre de resultat que l'on a à une requête, on fait mysql_num_rows + 1?car j'ai l'i Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in... [ par Florent06 ] SalutJe suis en train de faire une zone membres pour mon site. Dans la page d'inscription, il y a un script (pris ici) qui sert à probleme de rows [ par christuckers ] Salut tout le monde,Je dois avoir un probleme dans ma requete :    $nbr3 = mysql_num_rows(mysql_query($query3)); ?


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales