Mettre variable dans array pour trie
Résolu/Fermé
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
-
26 déc. 2013 à 15:36
t671 Messages postés 1419 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 26 février 2024 - 1 janv. 2014 à 12:18
t671 Messages postés 1419 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 26 février 2024 - 1 janv. 2014 à 12:18
A voir également:
- Mettre variable dans array pour trie
- Undefined array key ✓ - Forum PHP
- Votre envoi est trié sur sa plateforme de départ ✓ - Forum Consommation & Internet
- 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
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
- Application gratuite pour trier les photos - Guide
27 réponses
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
11
Modifié par t671 le 27/12/2013 à 17:42
Modifié par t671 le 27/12/2013 à 17:42
OKKKK !!! J'ai trouvé ...........
GENIAL !!!! Un grand merci pour ton aide !!!!!
Me reste plus quà trouver l'équivalence de num_cj_1, num_cj_2,num_cj_3 et num_cj_4 dans la table en, faisant :
Mais comment remplacer
"conjoint" => $row['num_cj_1']
par
$row4['nom'] $row4['prenom']
GENIAL !!!! Un grand merci pour ton aide !!!!!
Me reste plus quà trouver l'équivalence de num_cj_1, num_cj_2,num_cj_3 et num_cj_4 dans la table en, faisant :
if (!empty($row['num_cj_1'])) { $query4 = 'SELECT nom,prenom FROM individus WHERE num_indiv LIKE "'.$row['num_cj_1'].'" '; $result4 = mysql_query($query4) or die(mysql_error()); $row4 = mysql_fetch_array($result4); }
Mais comment remplacer
"conjoint" => $row['num_cj_1']
par
$row4['nom'] $row4['prenom']
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 à 18:05
27 déc. 2013 à 18:05
Tu n'as pas besoin de remplacer tel que tu le dis.
Tu as $row['num_cj_1'] et à partir de ça tu peux toujours trouver le nom et le prénom grâce à ta requête.
Par contre dans ton select, num_indiv vaut $row['num_cj_1'] ou pas ?
Car si c'est la même valeur tu ne dois pas mettre de LIKE mais un =
Tu as $row['num_cj_1'] et à partir de ça tu peux toujours trouver le nom et le prénom grâce à ta requête.
Par contre dans ton select, num_indiv vaut $row['num_cj_1'] ou pas ?
Car si c'est la même valeur tu ne dois pas mettre de LIKE mais un =
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
11
Modifié par t671 le 27/12/2013 à 18:15
Modifié par t671 le 27/12/2013 à 18:15
J'ai fait ça :
Ca fonctionne, mais peut-être un peu long et pas très esthétique !
Par contre, j'ai voulu tester si il y avait des requêtes vides (pas de conjoint) en faisant if ($tonarray[1] != ""), mais ça fonctionne pas !
if (!empty($row['num_cj_1'])) { $query4 = 'SELECT nom,prenom,date_naissance,date_dc FROM individus WHERE num_indiv LIKE "'.$row['num_cj_1'].'" '; $result4 = mysql_query($query4) or die(mysql_error()); $row4 = mysql_fetch_array($result4); $ident4 = ''.$row4['nom'].' '.$row4['prenom'].''; } if (!empty($row['num_cj_2'])) { $query5 = 'SELECT nom,prenom,date_naissance,date_dc FROM individus WHERE num_indiv LIKE "'.$row['num_cj_2'].'" '; $result5 = mysql_query($query5) or die(mysql_error()); $row5 = mysql_fetch_array($result5); $ident5 = ''.$row5['nom'].' '.$row5['prenom'].''; } if (!empty($row['num_cj_3'])) { $query6 = 'SELECT nom,prenom,date_naissance,date_dc FROM individus WHERE num_indiv LIKE "'.$row['num_cj_3'].'" '; $result6 = mysql_query($query6) or die(mysql_error()); $row6 = mysql_fetch_array($result6); $ident6 = ''.$row6['nom'].' '.$row6['prenom'].''; } if (!empty($row['num_cj_4'])) { $query7 = 'SELECT nom,prenom,date_naissance,date_dc FROM individus WHERE num_indiv LIKE "'.$row['num_cj_4'].'" '; $result7 = mysql_query($query7) or die(mysql_error()); $row7 = mysql_fetch_array($result7); $ident7 = ''.$row7['nom'].' '.$row7['prenom'].''; } $tonarray = array(); $tonarray[0]=array("date_mariage" => $row['date_mariage_1'] , "conjoint" => $ident4 , "lieu_mariage" => $row['lieu_mariage_1']); $tonarray[1]=array("date_mariage" => $row['date_mariage_2'] , "conjoint" => $ident5 , "lieu_mariage" => $row['lieu_mariage_2']); $tonarray[2]=array("date_mariage" => $row['date_mariage_3'] , "conjoint" => $ident6 , "lieu_mariage" => $row['lieu_mariage_3']); $tonarray[3]=array("date_mariage" => $row['date_mariage_4'] , "conjoint" => $ident7 , "lieu_mariage" => $row['lieu_mariage_4']); sort($tonarray); for($i=0; $i<=3; $i++) { if ($tonarray[1] != "") { echo '<tr><td><u>Union</u> : </td>avec '; echo $tonarray[$i]['conjoint']." ".$tonarray[$i]['date_mariage']." ".$tonarray[$i]['lieu_mariage']."<br />"; } }
Ca fonctionne, mais peut-être un peu long et pas très esthétique !
Par contre, j'ai voulu tester si il y avait des requêtes vides (pas de conjoint) en faisant if ($tonarray[1] != ""), mais ça fonctionne pas !
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
11
27 déc. 2013 à 18:17
27 déc. 2013 à 18:17
C'est bon, j'ai trouvé .................. !!!!!!
Merci pour tout !
Bonne fêtes et meilleurs voeux !
A ++
Merci pour tout !
Bonne fêtes et meilleurs voeux !
A ++
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
27 déc. 2013 à 18:22
27 déc. 2013 à 18:22
Je peux t'expliquer comment réduire considérablement le nombre de lignes si tu veux mais il faudra encore utiliser une boucle.
Concernant la condition pour vérifier si des lignes sont vides, essaie if(!empty($tonarray[1]))
Concernant la condition pour vérifier si des lignes sont vides, essaie if(!empty($tonarray[1]))
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
11
Modifié par t671 le 28/12/2013 à 17:06
Modifié par t671 le 28/12/2013 à 17:06
Bonjour TeRMiNo,
J'ai réussi:
La seule chose qui cloche c'est que je n'arrive pas à trier sur date_mariage (SUBSTRING(date_mariage, -4) ASC). Car là, j'ai l'impression que le tri se fait sur "conjoint".
J'ai réussi:
$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']); sort($tonarray); for($i=0; $i<=3; $i++) { if ($tonarray[$i]['conjoint'] != "") { $query4 = 'SELECT id,nom,prenom,date_naissance,date_dc FROM individus WHERE num_indiv LIKE '.$tonarray[$i]['conjoint'].' '; $result4 = mysql_query($query4) or die(mysql_error()); $row4 = mysql_fetch_array($result4); echo '<tr><td><u>Union</u> : </td>'; ....................
La seule chose qui cloche c'est que je n'arrive pas à trier sur date_mariage (SUBSTRING(date_mariage, -4) ASC). Car là, j'ai l'impression que le tri se fait sur "conjoint".
TeRMiNo
Messages postés
161
Date d'inscription
mardi 8 janvier 2008
Statut
Membre
Dernière intervention
1 novembre 2015
20
Modifié par TeRMiNo le 30/12/2013 à 08:56
Modifié par TeRMiNo le 30/12/2013 à 08:56
Normalement le tri se fait sur la première colonne à savoir ici date_mariage avec la fonction sort(). Je l'ai tester avec les fruits et les chiffres tu as du le voir aussi non ?
Sinon tu peux directement trier dans ta requête en ajoutant ORDER BY...
Renseigne-toi sur le ORDER BY en SQL
Sinon tu peux directement trier dans ta requête en ajoutant ORDER BY...
Renseigne-toi sur le ORDER BY en SQL
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
11
27 déc. 2013 à 18:40
27 déc. 2013 à 18:40
Pour vérifier si les lignes sont vides, ça fonctionne avec if ($tonarray[$i]['conjoint'] != "").
Par contre, dans les if (!empty($row['num_cj_1'])) {........ (1,2,3 et 4), je veux récupérer des variables propres à 1, 2, 3 ou 4 (date_naissance) et les inscrire dans la boucle for. Comment je fais ???
Par contre, dans les if (!empty($row['num_cj_1'])) {........ (1,2,3 et 4), je veux récupérer des variables propres à 1, 2, 3 ou 4 (date_naissance) et les inscrire dans la boucle for. Comment je fais ???
t671
Messages postés
1419
Date d'inscription
lundi 25 février 2008
Statut
Membre
Dernière intervention
26 février 2024
11
1 janv. 2014 à 12:18
1 janv. 2014 à 12:18
Merci TeRMINo, et meilleurs voeux à tous ............... !!!!