Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 16-06-2010 13:23:32

faldo1
Membre
Date d'inscription: 15-05-2010
Messages: 25

Ne conserver que les lignes d'un tableau qui contiennent une valeur

Bonjour,

J'avance assez bien dans mon application, mais une demande qui semble pourtant simple me pose problème. Comment autoriser l'utilisateur à spécifier une chaine de caractères, par exemple 'toto' et ne conserver que les lignes d'un tableau déjà visible à l'écran qui contiennent cette chaine de caractères dans une de leurs colonnes ?

J'ai créé un petit formulaire pour lire la chaine de caractères, mais après ? J'ai un peu de mal à voir comment faire. Dans le Where ? Mais c'est infernal. Dans un filtre ? Mais on est ici à dire de garder toute la ligne telle qu'elle est si quelque part dans la ligne, le filtre est vérifié.

Quelqu'un peut-il me mettre sur la piste ? Je ferai l'effort de continuer moi-même

Merci d'avance

Dernière modification par faldo1 (16-06-2010 13:24:46)

Hors ligne

 

#2 16-06-2010 13:44:11

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: Ne conserver que les lignes d'un tableau qui contiennent une valeur

Perso j'ai rien compris... J'ai peu être raté une discutions, mais tu ne dis pas de quel composant tu parle, ni le contexte. Enfin peu etre que j'ai du mal aujourd'hui je sais pas xD

Hors ligne

 

#3 16-06-2010 13:52:13

faldo1
Membre
Date d'inscription: 15-05-2010
Messages: 25

Re: Ne conserver que les lignes d'un tableau qui contiennent une valeur

Bonjour,

Justement, je ne fais du Zend que depuis un mois et j'ai du mal à voir quel composant utiliser. C'est bien là mon problème.

Imagine que j'aie une liste brute

aaa bbb ccc ddd eee
aaa bbb ccc dXd eee
aaa bbb ccc ddd eee
aaa bXb ccc ddd eee
aaa bbb ccc ddd eee

Si mon utilisateur tape 'X' dans le mini formulaire que j'ai mis en haut de la liste, j'aimerais que ma liste soit filtrée sur uniquement les lignes dont une des colonnes au moins contient ce 'X'

Donc que la liste soit rafraîchie à l'écran  et ne contienne plus que

aaa bbb ccc dXd eee
aaa bXb ccc ddd eee

Je suppose qu'il existe des objets tout faits pour ça dans le Zend Framework, un peu comme pour pouvoir cliquer sur les colonnes pour trier, non ? Je n'ai pas envie de faire un "and colonne like '%x%' " sur chaque colonne dans le Where. Mais je ne vois pas directement quels objets Zend utiliser, ce n'est pas immédiat. Et je ne trouve pas les mots sur lesquels chercher dans Google pour avoir un début de réponse.

Merci pour ton aide.

Hors ligne

 

#4 16-06-2010 14:03:50

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: Ne conserver que les lignes d'un tableau qui contiennent une valeur

Oki la j'ai bcp mieux compris big_smile
Mais ta liste tu la récupère comment, c'est le retour d'une requête vers une base ou une liste html fixe?

Hors ligne

 

#5 16-06-2010 14:12:04

faldo1
Membre
Date d'inscription: 15-05-2010
Messages: 25

Re: Ne conserver que les lignes d'un tableau qui contiennent une valeur

Ah ben, jusqu'ici, j'ai pu me débrouiller et tout faire dans les règles de l'art wink

C'est donc le retour d'un FetchAll()

Je n'ai pas écrit de sql direct mais j'ai utilisé l'object Select, les Join leftJoin, etc. Par contre, le tableau bâti par la vue est en pur html pour l'instant.

On dirait que Dojo m'aiderait nativement pour tout ce qui est tri sur le titre de la colonne, etc. Mais pour l'instant, c'est du pur html.

Dernière modification par faldo1 (16-06-2010 14:12:55)

Hors ligne

 

#6 16-06-2010 14:50:04

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: Ne conserver que les lignes d'un tableau qui contiennent une valeur

Et pourquoi tu veux pas utiliser une clause where dans ton fecthAll()?

Hors ligne

 

#7 16-06-2010 14:54:55

faldo1
Membre
Date d'inscription: 15-05-2010
Messages: 25

Re: Ne conserver que les lignes d'un tableau qui contiennent une valeur

Parce que ma recherche se fait sur chaque colonne. Et je n'ai pas envie de faire autant de ' and colonne_i like '%critere%' que j'ai de colonnes smile

Ce serait plus simple alors de tout charger et de gérer le tableau mémoire.

Hors ligne

 

#8 21-06-2010 11:11:13

ubini
Membre
Lieu: gillarens/Suisse
Date d'inscription: 23-01-2008
Messages: 110
Site web

Re: Ne conserver que les lignes d'un tableau qui contiennent une valeur

peut-être que :

foreach ($this->getAdapter()->describeTable($this->_name) as $col)
{
    $select->where($col['COLUMN_NAME']. " LIKE ?", $critere)
}

ou un truc du genre ?


http://www.easyswap.org - site d'échange de biens et de services conçu avec jQuery et Zend Framework
http://www.lambelet.net - mon blog perso et inutile

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages