Accueil | Aide en ligne | Annuaire | Sécurité | Articles | Astuces | Téléchargements | Association 


Mon compte SOS Ordi

Vous n'êtes pas identifié
[-> S'inscrire à SOS Ordi
[-> Mot de passe perdu ?
S'identifier


Rechercher sur SOS Ordi

Ok

Dans





 Catégories de l'aide en ligne

 Aide en ligne


 Saviez vous que ...

Pour soutenir l'association et payer le serveur vous pouvez faire des dons


 Partenaires

  SOS Ordi > Aide en ligne > Logiciel > Développement > Base de données > mySQL > MYSQL - Nombre de lignes

MYSQL - Nombre de lignes

14 réponse(s)
dont 1 ont aidé pasondag à résoudre son problème

  Problème résolu posté le 18/02/2006 à 20:17
Profil Configuration PC
pasondag


poste-de-travail_la-fouine-du-net_hardware
État : Absent
Bonjours,

J'aimerais savoir comment recuperer le nombre de lignes d'une base, mais sans avoir à demander l'envoie base au mysql.

Je m'explique je cherche une fonction lafonction() qui lorsqu'on lui passe en parametre (d'une maniere ou d'une autre) par exemple "latable where unecolone = unevaleur" il renvoie le nombre de ligne.

PS: j'utilise mysql avec php

Edité par pasondag le 18/02/2006 à 20:18

   

Bas de page 


Information

Pour participer vous devez d'abord être membre ou identifié :
[-> M'identifier
[-> Je ne suis pas membre SOS Ordi, je souhaite m'inscrire
[-> J'ai perdu mon mot de passe


  Réponse postée le 23/02/2006 à 01:12
Profil du membre Configuration PC
spottydj



État : Absent
bah
dans la fonction il faudra de toute manière une connection a la base de données.

function ($tableEtCritere)
{
include ("connexion.php"); /*inclure la connexion a la base de données.*/
$resultat=mysql_query("select * from ".$tableEtCritere);
return mysql_num_rows($resultat);
}

Il faudra surement rajouter des tests, mais c'est aussi simple que ça.

Réplique du développeur : Moi on m'a demandé un programme qui fonctionne, pas une oeuvre d'art !

  Réponse postée le 23/02/2006 à 17:18
Profil du membre Configuration PC
pasondag



État : Absent
C'est justement cela que je veux eviter, car ça ponpe de l'energie inutilement sur le serveur que de demander au mysql d'envoyer toute la table alors que dans le cas present je n'ai besoin que du nombre de lignes.

Mais merci quand même .

Si quelqu'un donc, sais comment recuperer le nombre de ligne(s) correspondant à des criteres sans demander l'envoi de la table complette ...

PASondag
Webmaster amateur

  Réponse postée le 23/02/2006 à 18:27
Profil du membre Configuration PC
spottydj



État : Absent
Ce que tu peux faire, c'est au début de ton application, stocker le nombre de ligne dans une variable après la première requete.

Réplique du développeur : Moi on m'a demandé un programme qui fonctionne, pas une oeuvre d'art !

  Réponse postée le 25/02/2006 à 12:59
Profil du membre Configuration PC
pasondag



État : Absent
Oui mais le problemme est que je veux le nombre de ligne d'une requete que je n'execute pas si tu vois ce que je veux dire. Alors j'ai pas envie de l'executer juste pour le nombre de ligne (car cela ralenti l'execution de la page).

PASondag
Webmaster amateur

  Réponse postée le 25/02/2006 à 14:26
Profil du membre Configuration PC
spottydj



État : Absent
Bah c'est pas un select qui va ralentir, à moins que ta table ne soit pas indexée (pas de cle primaire) ou qu'elle contienne plus de 500 000 enregistrements.

Réplique du développeur : Moi on m'a demandé un programme qui fonctionne, pas une oeuvre d'art !

  Réponse postée le 28/02/2006 à 20:06
Profil du membre Configuration PC
pasondag



État : Absent
L'acumulation de lignes de codes inutilent ralentissent les scripts.

PASondag
Webmaster amateur

  Réponse postée le 28/02/2006 à 21:18
Profil du membre Configuration PC
spottydj



État : Absent
lol, pas pour une requete....

$nb_lignes=mysql_num_rows(mysql_query("select * from table"));

Voilà, en une ligne on a le nombre d'elements dans la table.

Réplique du développeur : Moi on m'a demandé un programme qui fonctionne, pas une oeuvre d'art !

  Réponse postée le 03/05/2006 à 14:06
Profil du membre Configuration PC
spottydj



État : Absent
Toujours pas de nouvelles ?

Pour le nombre de ligne, une alternative serait :

$tab_rs=mysql_fetch_array(mysql_query("select count(champ_id) from table"));
$nb_ligne=$tab_rs[0];

Réplique du développeur : Moi on m'a demandé un programme qui fonctionne, pas une oeuvre d'art !

  Réponse postée le 12/01/2007 à 14:25
Profil du membre Configuration PC
pasondag



État : Absent
rien de plus court ?

PASondag
Webmaster amateur

  Réponse postée le 12/01/2007 à 21:08
Profil du membre Configuration PC
spottydj



État : Absent
Non non, on ne peut pas faire plus court, il est nécessaire de faire une requête au serveur pour connaître le nombre de lignes contenu dans une table.

Si c'est pour afficher le nombre d'élément avant d'y afficher sur une page, et ne pas avoir a refaire la requête 2 fois, il faudrait alors stocker le résultat de ta requête totale dans un tableau PHP, compter le nombre de lignes du tableau, et ensuite stocker ce tableau dans une variable de Session pour pouvoir le réutiliser dans d'autres scripts de la même session.

Première fois : compte des lignes
Code :

$tab_rs=mysql_fetch_array(mysql_query("select * from table"));
$nb_ligne=count($tab_rs);
$_SESSION["tab_rs"] = $tab_rs;


2e fois, utilisation du tableau dans un autre script dans la même session :
Code :

$tab_rs = $_SESSION["tab_rs"];



Mais est-ce que ces 2 malheureuses lignes pour compter le nomre de résultats sont un réel problème ?
Car le "select count " n'est pas du tout une charge pour ton serveur MySQL.

Réplique du développeur : Moi on m'a demandé un programme qui fonctionne, pas une oeuvre d'art !

  Réponse postée le 13/01/2007 à 17:03
Profil du membre Configuration PC
pasondag



État : Absent
En realité les 2 lignes ne ralentisse pas vraiment, le problemme c'est que j'utilise ce code pour afficher des statistiques.
Or pour cela je dois plusieurs fois compter le nombre de lignes de differente bdd, avec differente restriction comme " WHERE X < 10" ou encore "WHERE Y = true". Comme il s'ajit ici juste de compter le nombre de lignes sans utiliser les données de celle-ci, je voulais éviter de charger trop de données.
Je pensais qu'il y avais avec Mysql une fonction pouvant simplement donner les nombre de ligne sans charger la bdd.
Visiblement c'est pas le cas.

Toufois le dernier post pourra mettre utile pour un autre script.
Merci.

PASondag
Webmaster amateur

  Réponse postée le 13/01/2007 à 17:04
Profil du membre Configuration PC
Robot SOSORDI



État : Absent
Réponse automatique :

Cette question est résolue

  Réponse postée le 14/01/2007 à 12:45
Profil du membre Configuration PC
spottydj



État : Absent
Tu as la possibilité de créer des vues dans la base de données.

C'est à dire en gros qu'une requête sera représentée comme une table pour accélérer les accès fréquents à des requêtes complexes.

Documentations : http://dev.mysql.com/doc/refman/5.0/fr/views.html

Réplique du développeur : Moi on m'a demandé un programme qui fonctionne, pas une oeuvre d'art !

  Réponse postée le 14/01/2007 à 12:46
Profil du membre Configuration PC
spottydj



État : Absent
PS : Juste pour dire qu'avec le contexte adéquat la solution n'est plus la même ;-)

Réplique du développeur : Moi on m'a demandé un programme qui fonctionne, pas une oeuvre d'art !



Haut de page 

 

Version 5.6 | Infos / Contacts | Partenariat | Publicité