Trier résultat de 2 requetes - PHP - Programmation
Marsh Posté le 09-11-2009 à 09:15:17
mais après si tu regroupe des données différentes dans le même tableau , comment tu vas faire l'affichage ? tu ne saur pas si tu a un étudiant ou un personnel
pour les like, il me semble que la syntaxe est LIKE '%$valeur%'
Marsh Posté le 09-11-2009 à 09:22:35
Je peux savoir s'il est étudiant ou personnel en fonction du NO_ETUDIANT (que pour étudiant) ou du NO_INDIVIDU. (que pour le personnel)...
Pour l'affichage, je ne mets que le nom, prénom, adresse email et login...
Marsh Posté le 09-11-2009 à 09:27:34
tu peux peut être pas revoir le modèle de données (dans ce cas je suis HS), mais la logique serait sans doute d'avoir une table générique (individu ou personne) qui contient tout ce qui est commun à ces 2 tables (nom, prénom, mail, login, etc...) et ensuite une table spécifique avec les infos spécifique (n° étudiant, ce genre de chose). enfin du bête héritage quoi, ce qui te permettrait d'extraire ces infos en une seule requête ensuite.
Marsh Posté le 09-11-2009 à 09:39:51
Malheureusement non, c'est pas moi qui ai fait la BDD... :-(
Marsh Posté le 09-11-2009 à 09:41:40
tu copie tout dans le meme tableau tableau
ensuite tu utilises usort
Marsh Posté le 09-11-2009 à 09:46:17
j'ai bien tout dans mon tableau $tab_general....
Cependant je ne vois pas trop comment l'utiliser (enfin quoi lui mettre en paramètre, ni comment afficher ses résultats)
Marsh Posté le 09-11-2009 à 09:49:26
c'est plus simple que ça en a l'air
Code :
|
tu peux aussi ajouter une comparaison sur le prénom si le nom est identique
Marsh Posté le 09-11-2009 à 09:51:08
juste une petite question elles sont en innoDB ou en myISAM tes tables ?
Marsh Posté le 09-11-2009 à 09:54:14
Il me mets une erreur : Fatal error: Cannot use object of type stdClass as array ...
(Elles sont en myISAM)
Marsh Posté le 09-11-2009 à 09:57:00
oups, j'ai oublié que tu utilisais mysql_fetch_object
remplace $a['nom'] par $a->nom
Marsh Posté le 09-11-2009 à 10:01:47
Crawdge a écrit : Il me mets une erreur : Fatal error: Cannot use object of type stdClass as array ... |
si t'es en myISAM ca serai plus pratique d'utilisé FullText deja pour ta requete (apres avoir mi ton fulltext biensur):
WHERE MATCH (NOM_USUEL, NOM_PATRONYMIQUE, PRENOM, ADR_EMAIL LIKE, ADR_EMAIL_RENVOI, LOGIN) AGAINST ('{$valeur}')";
sinon t'as PDO d'activer sur ton serveur ?
Marsh Posté le 09-11-2009 à 10:02:02
En effet ça marche mieux
cependant elles ne sont pas forcement trier, mais mélanger... rste a trouver avec quoi elles sont trier ^^ lol
Merci en tout cas !
Marsh Posté le 09-11-2009 à 10:03:03
stealth35 a écrit : |
Je ne sais pas désolé de ne pouvoir te répondre :-/
Marsh Posté le 09-11-2009 à 10:08:50
Il a l'air d'activer, mais je n'ai pas la main pour voir s'il l'est également sur le serveur de production...
Marsh Posté le 09-11-2009 à 10:59:16
bon de tete et a l'arrache tu pourais faire ca
$s = array(); |
Marsh Posté le 09-11-2009 à 11:15:15
en version propre avec array_multisort
$listnom = array(); |
Marsh Posté le 09-11-2009 à 11:18:18
tu sais que j'ai déjà donné une solution qui n'implique pas de créer des tableaux supplémentaires ?
Marsh Posté le 09-11-2009 à 11:21:33
Crawdge a écrit : |
Marsh Posté le 09-11-2009 à 11:31:10
stealth35 a écrit : en version propre avec array_multisort |
$listnom = array(); |
j'a testé mais ca ne me sort pas non plus mon tableau trier.... c'est bizarre...
C'est p'tet a mon affichage du coup...
pourtant j'ai :
Code :
|
Me serais-je trompé ?
Marsh Posté le 09-11-2009 à 13:14:14
stealth35 a écrit : envoi tout ton code |
Code :
|
Marsh Posté le 09-11-2009 à 13:45:05
oui j'avais change pour voir si ca triait par prenom si je changeais, mais ca ne change rien
j'ai juste oublié de remettre
Marsh Posté le 09-11-2009 à 13:47:48
t'as les erreurs d'activé ?, parce que deja ton '$i++' devrai t'en généré une
Marsh Posté le 09-11-2009 à 13:50:38
stealth35 a écrit : t'as les erreurs d'activé ?, parce que deja ton '$i++' devrai t'en généré une |
why?
Marsh Posté le 09-11-2009 à 13:56:06
pataluc a écrit : |
parce que $i n'exite pas
faire d'hab $i = 0;
sinon
Notice: Undefined variable: i |
Marsh Posté le 09-11-2009 à 13:59:07
ligne 17 (même si je te t'accorde que ca aurait été plus propre ligne 57)
Marsh Posté le 09-11-2009 à 14:00:10
pataluc a écrit : ligne 17 |
pas vu ils etaient caché
(ca aurai été plus simple d'utilisé la clé du tableau en plus)
Marsh Posté le 09-11-2009 à 14:05:16
En effet ca aurai été plus logique plus bas la déclaration ^^
C'est que je faisais des tests et des ajouts et pas forcement au bon endroit ^^
Marsh Posté le 10-11-2009 à 10:54:28
flo850 a écrit : c'est plus simple que ça en a l'air
|
Bon après une nuit de sommeil et de retour dessus, j'ai réutilisé ceci et ca marche....
je comprend pas ce que j'ai fait de plus/moins, mais bon c'est nickel avec ça !
Merci à tous !
Marsh Posté le 10-11-2009 à 14:05:07
moi je comprend pa le coup du 'strcmp' y'a un truc qui m'échappe dans la fonction 'usort', va falloir que je me penche dessus.
Marsh Posté le 10-11-2009 à 14:51:38
Félicitations. Tu viens de réaliser coté code ce que ta base aurait fait en plus facile et plus rapide avec une requete 'union'.
Marsh Posté le 10-11-2009 à 15:03:45
fred777888999 a écrit : Félicitations. Tu viens de réaliser coté code ce que ta base aurait fait en plus facile et plus rapide avec une requete 'union'. |
non,
The used SELECT statements have a different number of columns
Marsh Posté le 09-11-2009 à 08:56:23
Bonjour,
je viens vers vous suite à un problème sur mon développement.
En effet, j'ai deux requêtes (une sur la table étudiant, l'autre personnel) avec des champs différents, sauf un champ NOM (en gros). J'ai donc fait mes 2 requêtes, que j'ai mis dans un tableau.
J'ai donc un tableau avec mes résultat des 2 requêtes, mais il n'est pas trier.
Auriez vous une solution pour mélanger les 2 et les trier par nom? J'ai entendu parler de "array_multisort" mais je ne vois pas comment l'utiliser ni l'afficher par la suite...
Je vous joint les 2 requêtes et mon tableau.
Merci d'avance !
Message édité par Crawdge le 09-11-2009 à 09:06:49