Mettre variable dans array pour trie
Résolu/Fermé
t671
Messages postés
1467
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
21 janvier 2025
-
26 déc. 2013 à 15:36
t671 Messages postés 1467 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 21 janvier 2025 - 1 janv. 2014 à 12:18
t671 Messages postés 1467 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 21 janvier 2025 - 1 janv. 2014 à 12:18
A voir également:
- Mettre variable dans array pour trie
- Trier dans excel - Guide
- Application gratuite pour trier les photos - Guide
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ✓ - Forum Python
- Le fichier à télécharger contient une liste de chats. triez-la comme dans le tableau ci-dessous (attention, on ne voit que le début…). quel est le mot formé par les 8 dernières lettres de la colonne code ? - Forum Word
27 réponses
noerubiks
Messages postés
159
Date d'inscription
lundi 22 août 2011
Statut
Membre
Dernière intervention
28 août 2016
37
26 déc. 2013 à 15:40
26 déc. 2013 à 15:40
Bonjour, renseigne toi sur la boucle for ! :D
t671
Messages postés
1467
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
21 janvier 2025
11
26 déc. 2013 à 16:05
26 déc. 2013 à 16:05
J'y avais pensé, mais je ne vois pas comment faire !!!!
noerubiks
Messages postés
159
Date d'inscription
lundi 22 août 2011
Statut
Membre
Dernière intervention
28 août 2016
37
26 déc. 2013 à 16:07
26 déc. 2013 à 16:07
Dans quel language travail tu ?
t671
Messages postés
1467
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
21 janvier 2025
11
26 déc. 2013 à 16:09
26 déc. 2013 à 16:09
php
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
TeRMiNo
Messages postés
161
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
1 novembre 2015
20
Modifié par pijaku le 27/12/2013 à 10:53
Modifié par pijaku le 27/12/2013 à 10:53
sort($ton_array);
Pour classer dans l'ordre alphabétique je pense
Essaye pour voir, je suis pas sur que ça fonctionne
t671
Messages postés
1467
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
21 janvier 2025
11
26 déc. 2013 à 16:51
26 déc. 2013 à 16:51
OK, mais après avoir lu mon enregistrement, je veux mettre les champs A, B et C dans l'array. Je fais comment ??
TeRMiNo
Messages postés
161
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
1 novembre 2015
20
26 déc. 2013 à 16:53
26 déc. 2013 à 16:53
Comment tu as récupéré tes valeurs, d'un formulaire, d'une base de données ?
t671
Messages postés
1467
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
21 janvier 2025
11
Modifié par pijaku le 27/12/2013 à 10:54
Modifié par pijaku le 27/12/2013 à 10:54
SELECT * FROM matable WHERE id=$id
TeRMiNo
Messages postés
161
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
1 novembre 2015
20
Modifié par pijaku le 27/12/2013 à 10:54
Modifié par pijaku le 27/12/2013 à 10:54
Re !
Donc pour faire ça:
Voila comment avoir un beau tableau avec le champ de la table que tu désires. Si tu veux plus d'explications n'hésite pas.
Donc pour faire ça:
$sql = "SELECT * FROM ..."; $result = mysql_query($sql); $compteur = -1; $tonarray = array(); while($row = mysql_fetch_array($result)){ $compteur++; $tonarray[$compteur] = row['nom_du_champ_de_la_table']; }
Voila comment avoir un beau tableau avec le champ de la table que tu désires. Si tu veux plus d'explications n'hésite pas.
t671
Messages postés
1467
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
21 janvier 2025
11
26 déc. 2013 à 18:34
26 déc. 2013 à 18:34
Je vois ce que tu me présentes, mais j'ai oublié de te dire que 'nom_du_champ_de_la_table' a un nom différent.
J'ai 4 champs de l'enregistrement à mettre dans l'ordre, mais ils ne portes pas le même nom !!!
J'ai 4 champs de l'enregistrement à mettre dans l'ordre, mais ils ne portes pas le même nom !!!
TeRMiNo
Messages postés
161
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
1 novembre 2015
20
Modifié par pijaku le 27/12/2013 à 10:54
Modifié par pijaku le 27/12/2013 à 10:54
Je ne comprends pas bien...
A chaque ligne de ta table tu as 4 champs à mettre dans le tableau ?
Exemple: ta table contient les champs "A", "B", "C", "D"
Tu dois mettre les 4 champs dans le tableau à chaque ligne ?
Si c'est ça:
A chaque ligne de ta table tu as 4 champs à mettre dans le tableau ?
Exemple: ta table contient les champs "A", "B", "C", "D"
Tu dois mettre les 4 champs dans le tableau à chaque ligne ?
Si c'est ça:
$sql = "SELECT * FROM ..."; $result = mysql_query($sql); $compteur = -1; $tonarray = array(); while($row = mysql_fetch_array($result)){ $compteur++; $tonarray[$compteur] = row['nom_du_champ_de_la_table']; $compteur++; $tonarray[$compteur] = row['nom_du_champ_de_la_table2']; $compteur++; $tonarray[$compteur] = row['nom_du_champ_de_la_table3']; $compteur++; $tonarray[$compteur] = row['nom_du_champ_de_la_table4']; }
TeRMiNo
Messages postés
161
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
1 novembre 2015
20
26 déc. 2013 à 20:56
26 déc. 2013 à 20:56
Non puisque tu incrémentes ton compteur entre chaque champs. Essaye et tu verras par toi même.
t671
Messages postés
1467
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
21 janvier 2025
11
27 déc. 2013 à 10:38
27 déc. 2013 à 10:38
OK !
Et je fais comment pour afficher le résultat puisque je n'ai pas un nom de variable fixe ?
$query = 'SELECT * FROM individus WHERE id = "'.$id.'"';
$result = mysql_query($query) or die(mysql_error());
$compteur = -1;
$tonarray = array();
while($row = mysql_fetch_array($result))
{
$compteur++;
$tonarray[$compteur] = $row['date_mariage_1'];
$compteur++;
$tonarray[$compteur] = $row['date_mariage_2'];
$compteur++;
$tonarray[$compteur] = $row['date_mariage_3'];
$compteur++;
$tonarray[$compteur] = $row['date_mariage_4'];
}
ksort($tonarray);
foreach ($tonarray as $key => $row)
{
echo ?????????????;
Et je fais comment pour afficher le résultat puisque je n'ai pas un nom de variable fixe ?
TeRMiNo
Messages postés
161
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
1 novembre 2015
20
Modifié par pijaku le 27/12/2013 à 14:09
Modifié par pijaku le 27/12/2013 à 14:09
Bonjour,
Tu ne dois pas utiliser ksort() pour classer ton tableau par ordre alphabétique mais simplement sort().
La, le morceau de code ne sert qu'à remplir ton tableau. Pour l'afficher il faut faire ceci:
Tu auras ainsi toutes tes valeurs écrites les unes en dessous des autres dans l'ordre alphabétique
Tu ne dois pas utiliser ksort() pour classer ton tableau par ordre alphabétique mais simplement sort().
La, le morceau de code ne sert qu'à remplir ton tableau. Pour l'afficher il faut faire ceci:
for($i=0; $i<=$compteur; $i++){ echo $tonarray[$i]."<br />"; }
Tu auras ainsi toutes tes valeurs écrites les unes en dessous des autres dans l'ordre alphabétique
t671
Messages postés
1467
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
21 janvier 2025
11
27 déc. 2013 à 11:25
27 déc. 2013 à 11:25
GENIAL !!! Merci beaucoup ! Tu m'as été d'une grande aide, et merci aussi pour ta patience.
Me reste plus qu'à parfaire un tableau et à y rajouter les noms et les lieux qui vont avec les dates !
Pour cela, comme je ne peux le faire apparaitre dans le tableau ($tonarray[$compteur] = $row....), je vais être obligé de refaire un select ?
Me reste plus qu'à parfaire un tableau et à y rajouter les noms et les lieux qui vont avec les dates !
Pour cela, comme je ne peux le faire apparaitre dans le tableau ($tonarray[$compteur] = $row....), je vais être obligé de refaire un select ?
TeRMiNo
Messages postés
161
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
1 novembre 2015
20
27 déc. 2013 à 13:22
27 déc. 2013 à 13:22
Donc si j'ai bien compris tu as une table qui a 4 champs (date1, date2, date3, date4) et ce sont ces dates que tu récupères a chaque fois et que tu mets dans ton tableau c'est ça ?
Si c'est ça je ne vois qu'une solution, effectuer un select dans ta table du lieu et du nom pour lequel on trouve cette date.
Cependant, si tu as deux fois la même date pour plusieurs noms et plusieurs lieux ça risque de poser problème et il faudra gérer le cas en effectuant d'autres requêtes.
exemple: 11 janvier 2013 correspond à événement1 et à événement2 en même temps. Il faut que tu fasses ton select sur le premier résultat de la table, tu affiches ce résultat avec la date, tu parcours ton tableau et tu tombes sur la même date puisqu'elle est présente pour deux événements différents, puis tu réalises ton select sur le deuxième résultat
Est-ce que tu as compris ?
Si c'est ça je ne vois qu'une solution, effectuer un select dans ta table du lieu et du nom pour lequel on trouve cette date.
Cependant, si tu as deux fois la même date pour plusieurs noms et plusieurs lieux ça risque de poser problème et il faudra gérer le cas en effectuant d'autres requêtes.
exemple: 11 janvier 2013 correspond à événement1 et à événement2 en même temps. Il faut que tu fasses ton select sur le premier résultat de la table, tu affiches ce résultat avec la date, tu parcours ton tableau et tu tombes sur la même date puisqu'elle est présente pour deux événements différents, puis tu réalises ton select sur le deuxième résultat
Est-ce que tu as compris ?
t671
Messages postés
1467
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
21 janvier 2025
11
27 déc. 2013 à 15:03
27 déc. 2013 à 15:03
En fait, dans mon enregistrement, j'ai 4 champs (date1, date2, date3 et date4). J'ai en plus 4 autres champs qui correspondent au personnage lié à la date (num_cj_1, num_cj_2, num_3 et num_cj_4). Et j'ai encore 4 autres champs liés à la date (lieu_1, lieu_2, lieu_3 et lieu_4).
Donc, quand j'affiche date2, j'affiche avec num_cj_2 et lieu_2.
Si après j'affiche date1, j'affiche num_cj_1 et lieu_1 ....................
Donc, quand j'affiche date2, j'affiche avec num_cj_2 et lieu_2.
Si après j'affiche date1, j'affiche num_cj_1 et lieu_1 ....................
TeRMiNo
Messages postés
161
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
1 novembre 2015
20
27 déc. 2013 à 15:40
27 déc. 2013 à 15:40
J'ai exactement ce qu'il te faut.
Un tableau imbriqué dans un autre tableau.
Je vais te donner un petit exemple que tu lanceras et tu n'auras plus qu'à l'adapter pour toi.
Essaye de voir ce que ça te donne et si tu ne comprends pas je t'expliquerais en détail.
Il est important que tu comprennes par toi même pour que tu puisse le reproduire par la suite.
En fait un tableau imbriqué te permet d'associer plusieurs valeurs (ici chiffre) à une valeur de départ (ici fruit). Ce qui fait que lorsque tu tries ton tableau, les valeurs resteront associées.
Un tableau imbriqué dans un autre tableau.
Je vais te donner un petit exemple que tu lanceras et tu n'auras plus qu'à l'adapter pour toi.
<?php $tonarray = array(); $tonarray[0]=array("fruit" => "orange", "chiffre"=>"2"); $tonarray[1]=array("fruit" => "banane", "chiffre"=>"3"); $tonarray[2]=array("fruit" => "ananas", "chiffre"=>"6"); for($i=0; $i<=2; $i++){ echo $tonarray[$i]['fruit']." ".$tonarray[$i]['chiffre']."<br />"; } echo "<br />"; sort($tonarray); for($i=0; $i<=2; $i++){ echo $tonarray[$i]['fruit']." ".$tonarray[$i]['chiffre']."<br />"; } ?>
Essaye de voir ce que ça te donne et si tu ne comprends pas je t'expliquerais en détail.
Il est important que tu comprennes par toi même pour que tu puisse le reproduire par la suite.
En fait un tableau imbriqué te permet d'associer plusieurs valeurs (ici chiffre) à une valeur de départ (ici fruit). Ce qui fait que lorsque tu tries ton tableau, les valeurs resteront associées.
t671
Messages postés
1467
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
21 janvier 2025
11
Modifié par t671 le 27/12/2013 à 17:00
Modifié par t671 le 27/12/2013 à 17:00
Voici ce que j'ai écrit :
Et j'ai en reour :
Parse error: syntax error, unexpected T_STRING, expecting ')' sur la ligne $tonarray[0]=..........
Je pense que c'est un problème d'écriture de variable !? J'ai essayé plusieurs possibilités, mais rien à faire !
Je n'ai donc pas encore pu voir le résultat, mais pourquoi fais-tu 2 boucles for ?
$query = 'SELECT * FROM individus WHERE id = "'.$id.'"'; $result = mysql_query($query) or die(mysql_error()); $row = mysql_fetch_array($result); $tonarray = array(); $tonarray[0]=array("date_mariage" => '.$row['date_mariage_1'].' , "conjoint" => '.$row['num_cj_1'].', "lieu_mariage" => '.$row['lieu_mariage_1'].'); $tonarray[1]=array("date_mariage" => '.$row['date_mariage_2'].' , "conjoint" => '.$row['num_cj_2'].', "lieu_mariage" => '.$row['lieu_mariage_2'].'); $tonarray[2]=array("date_mariage" => '.$row['date_mariage_3'].' , "conjoint" => '.$row['num_cj_3'].', "lieu_mariage" => '.$row['lieu_mariage_3'].'); $tonarray[3]=array("date_mariage" => '.$row['date_mariage_4'].' , "conjoint" => '.$row['num_cj_4'].', "lieu_mariage" => '.$row['lieu_mariage_4'].'); for($i=0; $i<=3; $i++) { echo $tonarray[$i]['date_mariage']." ".$tonarray[$i]['conjoint']." ".$tonarray[$i]['lieu_mariage']."<br />"; } echo "<br />"; sort($tonarray); for($i=0; $i<=3; $i++) { echo $tonarray[$i]['date_mariage']." ".$tonarray[$i]['conjoint']." ".$tonarray[$i]['lieu_mariage']."<br />"; }
Et j'ai en reour :
Parse error: syntax error, unexpected T_STRING, expecting ')' sur la ligne $tonarray[0]=..........
Je pense que c'est un problème d'écriture de variable !? J'ai essayé plusieurs possibilités, mais rien à faire !
Je n'ai donc pas encore pu voir le résultat, mais pourquoi fais-tu 2 boucles for ?