IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Requete dans boucle et optimisation [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 43
    Points : 18
    Points
    18
    Par défaut Requete dans boucle et optimisation
    Bonjour à tous,

    Je me tourne vers vous pour que vous puissiez m'aider à prendre la bonne direction.
    Je suis en train de coder une sorte d'espace membre sur mon site et je bute sur une requête.

    Explication : Nous sommes sur une page membre. Elle affiche la liste des statut posté. Sous chacun de ces statut, il y al a possibilité de laisser un commentaire.

    Le textarea du commentaire est dans une div appelé commentaire, qui est en display "none". Lorsqu'une personne clique sur le lien pour laisser ou voir les commentaire, ce div s'affiche.

    Je voudrais que lorsque le div s'affiche les commentaires s'affiche également. (avec une limite mais c'est pas le problème du jour).

    Faire la requête en soi, je sais le faire. Ce qui me dérange c'est que ce div est dans une boucle for.
    Autrement dit si le membre à 300 statut, une requête va afficher 300 statut, et si je fou ma requête pour afficher les commentaire dans la boucle ... C'est juste impensable...

    Alors je me suis dit, qu'il ne faudrait afficher les commentaire uniquement lorsqu’un utilisateur clique pour laisser/voir les commentaires ( événement javascript). Mais pour avoir l'id du statut, je dois être dans ma boucle ... Et là c'est moi qui tourne en rond.

    Comment faire?

    Alors je me suis dit, à l'ouverture du div je dis à javascript d’exécuter la requête sql .. Mais c'est évident là aussi que ce n'est pas possible ( sécurité).
    Après avoir passé quelque temps à chercher sur le net, j'ai cru comprendre qu'il était possible de faire quelque chose avec AJAX (lui dire d'ouvrir un fichier pour qu'il exécute la requête qui se trouvera dans ce fichier). Mais comment avoir mon id du statut?

    Bref je sais pas trop quoi faire? J'aurais besoin qu'on me guide, d'autant plus que je ne connais strictement rien à AJAX ( ainsi que Javascript je connais uniquement les événement).

    Si vous avez eu le courage de lire jusque là c'est un bon gros début, si vous m'avez compris c'est que vous êtes trop fort et si en plus vous pouvez m'aider alors là vous devenez une perle !

    Merci d'avance !

  2. #2
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    Bon, je continue de chercher de mon côté.
    J'ai lu et essayer de comprendre et appliquer un cour d'Ajax

    Voici ou j'en suis pour le moment :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?php
    echo '<div class="comment"><img src="/chien/image/template/comment.png" alt="écrire un commentaire"/> <a href="" onclick="afficheComment(\'commenter'.$affStat['id'].'\'); return false;" >Commenter</a></div>
    <div id="commenter'.$affStat['id'].'" style="display:none">
    	<form action="commentaire_traitement.php" method="post" id="commentform">
    		<textarea class="TextComment" name ="textcomment$$'.$affStat['id'].'$$'.$affStat['id_membre'].'" placeholder="Laisser un commentaire ..." onKeyPress="if(event.keyCode == 13) validerForm();" ></textarea>
    		<div id="listcommentaire" style="border:1px solid; height:20px;"><span></span></div>
    	</form>
    </div>';
    ?>
    <script>
    function chargerComment(){ //fonction ajax qui charge les paramètres et les envoies
    	var xhr = new XMLHttpRequest();
    	var id_membre = <?php echo $affStat['id_membre']; ?>,
    		id_statut = <?php echo $affStat['id']; ?>;
    	var value1 = encodeURIComponent(id_membre),
    		value2 = encodeURIComponent(id_statut);
    	xhr.open('GET', 'http://localhost/chien/commentaire_traitement.php?param1=' + value1 + '&param2=' + value2);
    	//si on reçoit tout on créer la requete
    	if (xhr.readyState == 4 && xhr.status == 200) {
    		document.getElementById('listcommentaire').innerHTML = '<span>' + xhr.responseText + '</span>'; 
    	}
    	xhr.send(null); 
    };
    function afficheComment(idDivCache){ //fonction javascript qui affiche le div et déclenche la fonction ajax
    ***document.getElementById(idDivCache).style.display = "block";
    function chargerComment();
    };			
    </script>
    Je n'ai pas essayé puisqu'il m'apparait comme évident que ça ne fonctionne pas étant donné que je n'ai pas écrit ma requête (indépendamment des autres erreurs que je dois probablement avoir dans mes scripts)

    Je n'ai toujours pas compris comment écrire la requête sql dans la partie ajax...

    Je cherche ...

    EDIT : Je crois que j'ai compris. j'ai réédité mon code, je change en faisant passé mes valeurs en get; sur ma page commentaire_traitement je récupère le GET et je fais ma requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(isset($_GET['param1']) && isset($_GET['param2'])){
    	echo 'ok';
    }
    Pas encore testé, c'est l'heure du repas....

  3. #3
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 43
    Points : 18
    Points
    18
    Par défaut
    Bon, j'ai corrigé quelque trucs sur le code ci-dessus par rapport aux erreur donné dans firebug, mais rien ne se passe.

    J'aurais réellement souhaité avoir de l'aide car là je suis bloqué dans l'avancement de mon projet.

    Merci d'avance

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requete en boucle si variable déjà présente dans BDD
    Par Augustule dans le forum Langage
    Réponses: 8
    Dernier message: 30/07/2010, 22h48
  2. [ODBC] ODBC Access+ requete insert dans boucle while
    Par gpaca dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 17/03/2010, 16h41
  3. Réponses: 17
    Dernier message: 01/12/2009, 09h24
  4. requete dans boucle
    Par mussara dans le forum Requêtes
    Réponses: 0
    Dernier message: 21/08/2007, 13h10
  5. Requete SQL dans boucle while
    Par vince_grenoblois dans le forum MS SQL Server
    Réponses: 18
    Dernier message: 04/08/2006, 20h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo