Accueil > Forum > > > > Mysql_num_rows()
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ère le fait que le personnage a évolué
$backup = "Congratulation you upgrade your attack number !vous avez évolué $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ère le fait que le personnage a évolué
$backup = "Congratulation you upgrade your mouvement number ! vous avez évolué $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ère le fait que le personnage a évolué
$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ère le fait que le personnage a évolué
$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ère le fait que le personnage a évolué
$backup = "Congratulation you upgrade your damages !vous avez évolué $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)); ?
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|