Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 19/03/2010, 12h01   #1
Candidat au titre de Membre du Club
 
Femme
Inscription : février 2004
Messages : 115
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : février 2004
Messages : 115
Points : 14
Points : 14
Envoyer un message via Yahoo à wperle
Par défaut Lecture en php enregistrement par enregistrement

Bonjour tous le monde,

Comment faire pour lire enregistrement par enregistrement sans utiliser la boucle While.

Merci.
wperle est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2010, 12h08   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 4 774
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 4 774
Points : 6 723
Points : 6 723
Bonjour,
Tu dois toujours utiliseer une boucle (while ou for) pour pouvoir parcourir les résultats d'une requête.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2010, 12h27   #3
Candidat au titre de Membre du Club
 
Femme
Inscription : février 2004
Messages : 115
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : février 2004
Messages : 115
Points : 14
Points : 14
Envoyer un message via Yahoo à wperle
Bonjour andry.aime,

Ce que je souhaiterais avoir c'est un nombre fixe d'enregistrement

Code :
1
2
3
$sql="SELECT club, classement FROM Tresultat ORDER BY classement ASC";
$resultat =mysql_query($sql);
$rs=mysql_fetch_array($resultat);
Je voudrais lire que les 4 premiers enregistrements de cette requête de telle sorte de faire la somme exemple.

Club athlete classement
Club1 athlete1 2
Club1 athlete2 5
Club1 athlete3 10
Club1 athlete4 23
Club1 athlete5 35

Pour club1 je veux sélectionner que les 4 athlètes qui sont bien classé (2, 5, 10 et 23) et de faire la somme des classements.

Club1=2+5+10+23=40

Merci pour aide.

Dernière modification par wperle ; 19/03/2010 à 12h40.
wperle est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2010, 12h35   #4
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 4 774
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 4 774
Points : 6 723
Points : 6 723
Citation:
Envoyé par wperle Voir le message
Ce que je souhaiterais avoir c'est un nombre fixe d'enregistrement
Tu peux simplement utiliser la clause "LIMIT" dans la requête .
Code :
$sql="SELECT club, classement FROM Tresultat ORDER BY classement ASC LIMIT 0,4";
Par contre si tu veux lancer une fois la requête et qui retourne tous les enregistrements, tu peux te pointer vers le nième ligne d'enregistrement en utilisant mysql_data_seek
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2010, 12h44   #5
Candidat au titre de Membre du Club
 
Femme
Inscription : février 2004
Messages : 115
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : février 2004
Messages : 115
Points : 14
Points : 14
Envoyer un message via Yahoo à wperle
Oui je connais Limit,

mais ce que je voudrais lire que les 4 premiers enregistrements de la requête cité dessus et de faire la somme exemple.

Club athleteXX classement
Club1 athlete01 02
Club1 athlete02 05
Club1 athlete03 10
Club1 athlete04 23
Club1 athlete05 35

Pour club1 je veux sélectionner que les 4 athlètes qui sont bien classé (2, 5, 10 et 23) et de faire la somme des classements.

Club1=2+5+10+23=40

Je pense que la "mysql_data_seek" sera efficace pour mon cas mais je ne sais pas comment l'utiliser.

wperle est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2010, 12h55   #6
Membre habitué
 
Inscription : juillet 2009
Messages : 156
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 156
Points : 133
Points : 133
tu fais ton while avec $i= 0 juste avant et dans ta boucle
$i = $i+classement;

après ta boucle tu récupère ton $i...

Code :
1
2
3
4
5
6
7
 
$i= 0 ;
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
   $i = $i + $row[1];
}
 
echo $i;
par contre il faut que tu filtre dans ta requête les club... sinon tu fais un tableau avec toutes tes entrée que tu trie, tu passe le nom de club en clé de ton tableau et dans chaque clé, tu rentre un tableau avec tes athlètes...
Ze AzAr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2010, 12h55   #7
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 4 774
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 4 774
Points : 6 723
Points : 6 723
tu peux le faire avec un for?
Code :
1
2
3
4
5
6
7
8
9
10
11
for(var $i=0; $i<4; $i++)
{
if($row=mysql_fetch_array($resultat))
  {
    echo $row[0]." ".$row[1]."<br/>";
  }
else
  {
    break;
  }
}
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2010, 17h22   #8
Candidat au titre de Membre du Club
 
Femme
Inscription : février 2004
Messages : 115
Détails du profil
Informations personnelles :
Sexe : Femme

Informations forums :
Inscription : février 2004
Messages : 115
Points : 14
Points : 14
Envoyer un message via Yahoo à wperle
Merci beaucoup, la boucle for m'a beaucoup aidée.
wperle est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 20h13.


 
 
 
 
Partenaires

Hébergement Web