Probleme de TRI

restesouple Messages postés 27 Date d'inscription lundi 17 juin 2002 Statut Membre Dernière intervention 4 octobre 2007 - 6 févr. 2005 à 18:34
restesouple Messages postés 27 Date d'inscription lundi 17 juin 2002 Statut Membre Dernière intervention 4 octobre 2007 - 7 févr. 2005 à 18:20
Salut!

Voià mon code:

while($data = mysql_fetch_array($req))
{
if ($donnee!='') {
$donnee = ''.$donnee. ', "' .($data['valeur1'] + $data['valeur2']).'"';
} else if ($donnee=='') {
$donnee = '"' .($data['valeur1'] + $data['valeur2']).'"';
}
}
echo $donnee;
// Jusque la ca m'affiche bien les donnees :) mais ca se complique ici:

sort($donnee);

// Si je fais:
// echo $donnee[1];
// ca maffiche rien ou bien un guillemet

Merci de m'aider ca fait 1 heure que je cherche et toujours pas trouvé!

13 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
6 févr. 2005 à 18:52
Salut,



que souhaites-tu faire précisément ? quelles données veux-tu trier, et dans quel ordre ?



a +

Vulgarisation informatique : Entraide, dépannage et vulgarisation informatique

Forum d'entraide informatique (14 catégories)
0
restesouple Messages postés 27 Date d'inscription lundi 17 juin 2002 Statut Membre Dernière intervention 4 octobre 2007
7 févr. 2005 à 02:58
LEs valeur sont des chiffres, donc je voudrais trier du + grand au plus petit :)

Merci
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 févr. 2005 à 07:47
Hello,

en lisant ton script, je n'ai pas l'impression que $donnee soit un tableau, moi. Donc sort() ne peut pas marcher, ni echo $donnee[1]
C'est une chaine de caracteres, la. C'est d'ailleurs pour ca que ton echo $donnee, lui, marche. Sort te rend un tableau parce que tu lui passes un tableau en argument. La tu lui passes une chaine de caracteres.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 févr. 2005 à 07:55
Et je e refais pas ton script parce que je n'ai pas bien compris comment se presentait ton tableau.
Ptete :

while($data = mysql_fetch_array($req))
$donnee[] = $data['valeur1'] + $data['valeur2'];

simplement.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
restesouple Messages postés 27 Date d'inscription lundi 17 juin 2002 Statut Membre Dernière intervention 4 octobre 2007
7 févr. 2005 à 11:18
J'ai réussi pour le tri mais la je flenche sur l'affichage dans un tableau en fait j'ai fait ca:

require("./config.php");
$db = mysql_connect($db_server, $db_user, $db_pwd);
mysql_select_db($db_name,$db);
$sql = 'SELECT * FROM `test` ORDER BY nom ASC';
$req = mysql_query($sql) or die('Erreur SQL !');
while($data = mysql_fetch_array($req))
{
$donnee[] = ($data['valeur1'] + $data['valeur2']);
}
sort($donnee);

Donc la tout est OK!

Maintenant, comment faire pour que le 'sort' reconnaisse qui 'valeur1 + valeur2'

Ma base de données est comme ceci:

nom valeur1 valeur2

et je veux afficher

$donnee[1] pour 'nom'
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 févr. 2005 à 13:39
Desole, je n'ai pas compris ce que tu voulais. Reessaye d'expliquer lol :-)
0
restesouple Messages postés 27 Date d'inscription lundi 17 juin 2002 Statut Membre Dernière intervention 4 octobre 2007
7 févr. 2005 à 14:23
Oui jmexplique assez mal désolé

En fait g une table SQL qui contient

NOM VALEUR1 VALEUR2

Donc je tri bien (valeur1 + valeur2) dans l'ordre que je veux
Et quand je fait

echo $donnee[1];

Ca m'affiche bien le resultat de valeur1 + valeur2, mais je voudrais ajouté le nom avec le résultat de (valeur1 + valeur2), par exemple:

echo $nom $donnnee[1];
me donnerait le nom de la personne qui a (valeur1 + valeur2)
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 févr. 2005 à 15:20
Hmmm...
Y a plusieurs facons de faire ca. Cela depend de l'utilite que tu en as, en fait!
Tu peux creer un tableau associatif :

require("./config.php");
$db = mysql_connect($db_server, $db_user, $db_pwd);
mysql_select_db($db_name,$db);
$sql = 'SELECT * FROM `test` ORDER BY nom ASC';
$req = mysql_query($sql) or die('Erreur SQL !');
while($data = mysql_fetch_array($req))
{
$donnee[$data['nom']] = ($data['valeur1'] + $data['valeur2']);
}
sort($donnee);

while ($valeur=current($donnee)) {
echo 'nom : ', key($tab), ' valeur : ', $valeur;
next ($donnee);
}

Je pense que ca devrait marcher. Mais il y a surement plus simple lol, la c'est sans trop reflechir, a l'arrache.
0
restesouple Messages postés 27 Date d'inscription lundi 17 juin 2002 Statut Membre Dernière intervention 4 octobre 2007
7 févr. 2005 à 17:42
Hmmm J'ai pas très bien compris la :x
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 févr. 2005 à 17:47
Ben t'as essaye lol ?

Je change pas gdchose :

j'utilise un tableau avec comme index le nom des personnes, et comme valeur, ben les 2 valeurs ajoutees.

ca va donner un truc du genre $donnee['restesouple']=23

par exemple.



Ensuite pour afficher ton tableau je fais une boucle.

current(array array) te donne la valeur a la position courante de ton tableau

key (array array) te donne la clef courante de ton tableau

next (array array) fait avancer la position au prochain element.



donc dans $valeur = current ($donnee) on a 23

et dans key ($donnee) on a 'restesouple'



en fonction de mon exemple hein.

Ensuite on passe a l'enregistrement suivant.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 févr. 2005 à 17:51
Sauf que j'ai fait une erreur lol :



while ($valeur=current($donnee)) {
echo 'nom : ', key($donnee), ' valeur : ', $valeur;
next ($donnee);
}



J'avais mis $tab au lieu de $donnee, desole.
0
restesouple Messages postés 27 Date d'inscription lundi 17 juin 2002 Statut Membre Dernière intervention 4 octobre 2007
7 févr. 2005 à 18:13
j'ai bien saisi ton explication :)
Mais suis debutant en php, ca marche pas, c m'affiche rien
0
restesouple Messages postés 27 Date d'inscription lundi 17 juin 2002 Statut Membre Dernière intervention 4 octobre 2007
7 févr. 2005 à 18:20
OK ca s'affiche si j'enleve le "sort"

Mais je veux trié par valeur
0
Rejoignez-nous