Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 05-04-2011 20:28:18

ifolkiii
Nouveau membre
Date d'inscription: 05-04-2011
Messages: 9

Comment afficher certain enregistrement

Bonjour,
J’ai commence a crée un forum mon problème c’est que je n’arrive pas a affiche les sous sujets qui concernent un sujet choisie (chaque sujet contient plusieurs sous sujets) le code suivant me permet d’afficher sauf les sous sujets de 1er sujet

$condi= new Zend_Db_Select(Zend_Db_Table::getDefaultAdapter());
                          $condi->from('soussujets',
            array('idsoussujet','soussujet'))
                                    ->where("idsujet= 1 ");   
   
            $condit   = $condi->query();
          $resul = $condit->fetchall();
                          foreach ($resul as $r )
          {
                     echo $r['soussujet'].'<br>';
          }

Comment je peux obtenir idsujet d’un sujet choisie [ where("idsujet= ? ", $idsujet); ] ?
Merci pour la réponse

Hors ligne

 

#2 06-04-2011 08:58:59

tylerdurd
Membre
Date d'inscription: 22-07-2009
Messages: 75

Re: Comment afficher certain enregistrement

Bonjour, j'ai du mal à comprendre ton problème ...

Hors ligne

 

#3 06-04-2011 09:17:04

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

Re: Comment afficher certain enregistrement

Pareil j'ai vraiment pas compris la... Ton probléme est sur la requete ou sur l'affichage, qu'est ce qui te pose probleme exactement?

Hors ligne

 

#4 07-04-2011 13:25:01

ifolkiii
Nouveau membre
Date d'inscription: 05-04-2011
Messages: 9

Re: Comment afficher certain enregistrement

Par exemple j'ai un forum:
zend framework
            - Comment afficher certain enregistrement ?
            - Optimisation de requêtes, jointures
            - [ZF 1.11.3] Requête SQL avec une sous-requête
….
C++
            - a quoi sert les Template…. ?
            - c’est quoi l’héritage ?
           ….
VB
            -l’objet ADO c’est quoi ?
            -probleme de connexion a la base de donne
            …..

Je veux que si je click sur un sujet par exemple : C++ sauf ces sous sujet qui seront affiche (- a quoi sert les Template…. ?  - c’est quoi l’héritage ? )

Comment je peut obtenir idsujet d’un sujet choisie afin de le mettre dans la requête 
[….  where("idsujet= ? ", $idsujet); ]

J’ai essai ca :

           $params = $this->getRequest()->getParams();
           $idsujet = (int)$params['idsujet'];

mais ca pas marche il me rend idsujet=0
Merci

Hors ligne

 

#5 07-04-2011 16:55:46

tylerdurd
Membre
Date d'inscription: 22-07-2009
Messages: 75

Re: Comment afficher certain enregistrement

Tu peux montrer l'url qui est précisée lors l'appel de ton script ?

Hors ligne

 

#6 08-04-2011 15:28:09

ifolkiii
Nouveau membre
Date d'inscription: 05-04-2011
Messages: 9

Re: Comment afficher certain enregistrement

Non est ce que vous pouvez m dire comment (un exemple si c’est possible)
et merci

Hors ligne

 

#7 08-04-2011 18:41:09

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

Re: Comment afficher certain enregistrement

La si j'ai bien compris ton probleme c'est pas du ZF, c’est plus un probleme de PHP tu comprend pas comment récupéré un id de sujet, mais perso je trouve ça plutôt flou comme explication, dsl :$

Hors ligne

 

#8 08-04-2011 23:32:04

ifolkiii
Nouveau membre
Date d'inscription: 05-04-2011
Messages: 9

Re: Comment afficher certain enregistrement

Pas de problème,
Mais s il ne s’agit pas de ZF ni de PHP il sagit de quoi alors ?
Moi je veux seulement récupérer id d’un sujet que j’ai choisi

Hors ligne

 

#9 09-04-2011 19:46:30

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

Re: Comment afficher certain enregistrement

Si justement c'est du php, enfin si j'ai bien compris ton probleme hmm

Cette phrase me pose probleme :

Je veux que si je click sur un sujet par exemple : C++ sauf ces sous sujet qui seront affiche (- a quoi sert les Template…. ?  - c’est quoi l’héritage ? )

il ne manque pas un mot dans le texte en gras?

Hors ligne

 

#10 09-04-2011 23:56:14

ifolkiii
Nouveau membre
Date d'inscription: 05-04-2011
Messages: 9

Re: Comment afficher certain enregistrement

Je croie qu’il ne manque rien d’après toi c’est quoi ?

Hors ligne

 

#11 10-04-2011 01:08:36

nuxwin
Membre
Lieu: Caen (14)
Date d'inscription: 17-03-2011
Messages: 66

Re: Comment afficher certain enregistrement

Bonjour ;

Pour vous, les sous-sujets, c'est quoi exactement ? Les réponses à un sujet donnée ?

Voici comment je vois les choses :

Vous avez un forum qui contient plusieurs sous-forums (tout simplement nommés forum):

C++ est un forum
VB est aussi un forum

Les forums contiennent des sujets. Pour exemple, le forum C++ comporte plusieurs sujets:

    - a quoi sert les Template…. ?
    - c’est quoi l’héritage ?

Pour moi, un sujet est tout simplement un message (post) qui a été posté par un membre.

Et chaque message (post) peut avoir plusieurs réponses faites par d'autres membres...

Maintenant une question: Dans cette construction que n'arrivez-vous pas à afficher exactement ?

Nous vous remercions d'êtres plus précis car vous êtes assez difficile à suivre.

Dernière modification par nuxwin (10-04-2011 01:17:27)

Hors ligne

 

#12 11-04-2011 21:26:15

ifolkiii
Nouveau membre
Date d'inscription: 05-04-2011
Messages: 9

Re: Comment afficher certain enregistrement

bonjour,
Je n’arrive pas a affiche les messages (sujets) de chaque forum

Hors ligne

 

#13 11-04-2011 22:51:59

nuxwin
Membre
Lieu: Caen (14)
Date d'inscription: 17-03-2011
Messages: 66

Re: Comment afficher certain enregistrement

Bonsoir ;

Pouvez-vous au moins nous communiquer la structure SQL que vous utilisez pour votre forum.

Hors ligne

 

#14 11-04-2011 23:53:55

ifolkiii
Nouveau membre
Date d'inscription: 05-04-2011
Messages: 9

Re: Comment afficher certain enregistrement

D’après toi j besoin de 3 tables :
-forums:
      CREATE TABLE `eleve`.`forums` (
     `idforum` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
     `forums` VARCHAR( 30 ) NOT NULL
      ) ENGINE = MYISAM ;
- messages :
       CREATE TABLE `eleve`.`messages` (
     `idforum` INT NOT NULL ,
     `idmessage` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
     `titres` TEXT NOT NULL,
      `messages` TEXT NOT NULL,
      foreign key (idforum) references forums (idforum)
      ) ENGINE = MYISAM ;
- reponses :
      CREATE TABLE `eleve`.`reponses` (
     `idmessage` INT NOT NULL ,
     `idreponse` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
     `idpersonne` INT NOT NULL ,
     `reponse` TEXT NOT NULL ,
     `date` DATE NOT NULL ,
     `heure` TIME NOT NULL,
      foreign key (idmessage) references messages (idmessage),
      foreign key (idpersonne) references inscrit (id)
      ) ENGINE = MYISAM ;

Hors ligne

 

#15 12-04-2011 03:12:24

nuxwin
Membre
Lieu: Caen (14)
Date d'inscription: 17-03-2011
Messages: 66

Re: Comment afficher certain enregistrement

Absolument pas. Un petit exemple pour vous aider:

Dump du schéma et données que j'ai utilisé pour cette démonstration:

Code:

[lang=sql]
-- phpMyAdmin SQL Dump
-- version 3.3.8.1
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Mar 12 Avril 2011 à 03:08
-- Version du serveur: 5.1.49
-- Version de PHP: 5.3.3-7+squeeze1

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Base de données: `helpzf`
--

-- --------------------------------------------------------

--
-- Structure de la table `forums`
--

DROP TABLE IF EXISTS `forums`;
CREATE TABLE IF NOT EXISTS `forums` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` varchar(30) NOT NULL,
  `description` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

--
-- Contenu de la table `forums`
--

INSERT INTO `forums` (`id`, `name`, `description`) VALUES
(1, 'C++', 'Forum about C++ language'),
(2, 'VB', 'Forum about Visual Basic language');

-- --------------------------------------------------------

--
-- Structure de la table `messages`
--

DROP TABLE IF EXISTS `messages`;
CREATE TABLE IF NOT EXISTS `messages` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `id_forum` int(10) NOT NULL,
  `reply_to` smallint(5) NOT NULL DEFAULT '0',
  `subject` varchar(130) NOT NULL,
  `message` text NOT NULL,
  PRIMARY KEY (`id`),
  KEY `id_forum` (`id_forum`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

--
-- Contenu de la table `messages`
--

INSERT INTO `messages` (`id`, `id_forum`, `reply_to`, `subject`, `message`) VALUES
(1, 2, 0, 'C''est quoi le language Visual Basic ?', 'Bonjour, je voudrais savoir ce qu''est le langage Visual basic.'),
(2, 2, 1, 'Re: C''est quoi le language Visual Basic ?', 'Fait une recherche sur Google gros fainéant !'),
(3, 2, 1, 'Re: C''est quoi le language Visual Basic ?', 'Ha Ha Ha, c''est super sympa comme réponse ça...');

Maintenant, voici quelques requêtes SQL vraiment basiques qui peuvent vous aider pour commencer:

I. Afficher la liste des forums

Code:

[lang=sql]
SELECT * FROM forums

Resultat:

Code:

id     name     description
1     C++     Forum about C++ language
2     VB     Forum about Visual Basic language

II. Afficher les sujets d'un forum

Code:

[lang=sql]
SELECT * FROM messages WHERE reply_to = 0 AND id_forum = 2

Résultat:

Code:

id     id_forum     reply_to     subject     message
1     2     0     C'est quoi le language Visual Basic ?     Bonjour, je voudrais savoir ce qu'est le langage V...

III. Afficher les réponses d'un sujet (sujet inclu)

Code:

[lang=sql]
SELECT * FROM messages WHERE id = 1 OR reply_to = 1

Résultat:

Code:

id     id_forum     reply_to     subject     message
1     2     0     C'est quoi le language Visual Basic ?     Bonjour, je voudrais savoir ce qu'est le langage V...
2     2     1     Re: C'est quoi le language Visual Basic ?     Fait une recherche sur Google gros fainéant !
3     2     1     Re: C'est quoi le language Visual Basic ?     Ha Ha Ha, c'est super sympa comme réponse ça...

Si vous voulez simplement récupérer les réponses, il vous suffit de modifier la requête comme suite:

Code:

[lang=sql]
SELECT * FROM messages WHERE reply_to = 1

Je le répète, il s'agit que d'un exemple très basique. Autrement dit, ce n'est qu'une base de départ. Le schéma proposé ici n'est sûrement pas parfait et surtout, loin d'être complet. Par ailleurs, les requêtes sont vraiment basiques et n'incluent pas de clause de classement et de limite.

J'espère vous avoir éclairé suffisamment. Si vous avez vraiment besoin d'un exemple plus concret je vous le fournirais mais j'aimerais que vous fassiez un petit effort car tel que c'est parti, on va le coder à votre place le forum tongue.

Cordialement ;

Dernière modification par nuxwin (12-04-2011 03:29:20)

Hors ligne

 

#16 12-04-2011 10:52:44

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

Re: Comment afficher certain enregistrement

une belle réponse big_smile

Par contre si tu as du mal avec ces notions, tu devrais peut etre commencer par faire un peu de code en php / sql simple avant d'attaquer ZF wink

Hors ligne

 

#17 12-04-2011 14:19:31

ifolkiii
Nouveau membre
Date d'inscription: 05-04-2011
Messages: 9

Re: Comment afficher certain enregistrement

Bonjour et merci bcp
Mais mon problème ce n’est pas avec les requêtes SQL
Par exemple  on a:

id     name     description
1     C++     Forum about C++ language
2     VB     Forum about Visual Basic language

D’apres toi Pour afficher les sujets d’un forum :

   

Code:

SELECT * FROM messages WHERE reply_to = 0 AND id_forum = 2

Cette requete valable si l’utilisateur clic sur le forum VB
Mais s’il clic sur C++ id_forum va changer:

   

Code:

 SELECT * FROM messages WHERE reply_to = 0 AND id_forum = 1

Moi je veux faire (d’une manier générale ):

   

Code:

 SELECT * FROM messages WHERE reply_to = 0 AND id_forum = $id_forum

(c’est just pour vous expliquer)

Comment je peux recupere l’id_forum d’un forum que l’utilisateur a choisi pour le mettre dans la variable  $id_forum

J’espère que vous comprenez car j’essaie de vous expliquez mon probleme mais je ne sais pas comment hhhhhh

Dernière modification par ifolkiii (12-04-2011 15:28:59)

Hors ligne

 

#18 12-04-2011 17:24:51

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

Re: Comment afficher certain enregistrement

Heu... je comprend pas car tu as l'air de bien comprendre certaine notion de developpement et si je comprend bien ta question je vois vraiment pas pourquoi tu bloque la dessus hmm

Quand l'user clique sur le forum C++ par exemple, le lien sera de la forme : http://monsite.com/forum.php/categorie/1

avec 1 = id du sous forum C++

Puis dans le traitement tu récupére la valeur de categorie (ici donc 1) et tu set ton $id_forum avec cette valeur.
--> $this->getRequest()->getParam('categorie');

Hors ligne

 

#19 12-04-2011 20:34:13

nuxwin
Membre
Lieu: Caen (14)
Date d'inscription: 17-03-2011
Messages: 66

Re: Comment afficher certain enregistrement

Bonsoir :

Je rejoins shadypierre. Il me semble évident que votre problème se situe au niveau du fonctionnement du ZF. Je vais vous fournir un exemple concret.

Dernière modification par nuxwin (12-04-2011 20:34:23)

Hors ligne

 

#20 15-04-2011 23:09:55

ifolkiii
Nouveau membre
Date d'inscription: 05-04-2011
Messages: 9

Re: Comment afficher certain enregistrement

bonsoir et Merci,
j'ai teste ce code

       

Code:

$params = $this->getRequest()->getParams();
        $idsujet = (int)$params['idsujet'];

mais il ne fonctionne pas car si j fais
         

Code:

echo $idsujet;

il m'affiche 0

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