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 :

Réponse à un commentaire sur un système de commentaire d'article


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2012
    Messages : 48
    Points : 34
    Points
    34
    Par défaut Réponse à un commentaire sur un système de commentaire d'article
    Bonjour à tous, je viens vers vous car je suis en pleine création d'un blog pour mon portfolio, tout est prêt don mon premier article qui n'attend que d'être publié ! Le système de commentaire est créé, l'utilisateur peut aussi répondre à un commentaire mais le commentaire se met tout en bas au lieu de se mettre sous le commentaire en question. Pas facile d'expliquer, voici un petit "schéma" de ce que j'aimerais avoir :

    ------------------------------------------------------------------------------------
    Commentaire 1

    Commentaire 2
    --> Sous commentaire 1 du commentaire 2
    --> Sous commentaire 2 du commentaire 2
    ------> Sous sous commentaire 1 du sous commentaire 2
    --> Sous commentaire 3 du commentaire 2

    Commentaire 3
    --> Sous commentaire 1 du commentaire 3



    De mon côté les commentaires et sous commentaire s'affichent dans l'ordre que je les envoie...
    Pour info, les sous-commentaires récupèrent l'id du commentaire (id_reply).
    Voici mon code :

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
     
    <?php
     
    //Affichage des commentaires
    	$req_comment = "SELECT *, DATE_FORMAT(date_comment, '%W %d %M %Y à %H:%i') AS date_creation_fr FROM comment WHERE id_art = $num_art AND admin = '1'";			
    	$result_comment = mysql_query($req_comment) or die(mysql_error());
     
    	while($data = mysql_fetch_object($result_comment)){
     
    		$message = stripslashes(str_replace( "\n", '<br/>', $data->message ));
     
    		if($data->id_reply == 0){
    	?>
     
    			<div class="comments_send" style="border-top: 1px solid #c1c1c1;">
    				<?php
    					if(empty($data->website)){
    						echo '<div class="name_comment">' . $data->name . ' :</div>';
    					} else{
    				?>
    				<a href="<?php echo $data->website; ?>" target="_blank"><span class="name"><?php echo $data->name; ?> :</span></a>
    				<?php } ?>
    				<span class="date"><?php echo $data->date_creation_fr ?></span>
    				<br/>
    				<span><?php echo $message; ?></span>
    				<br/>
    				<a class='normal' rel="shadowbox[Mixed];width=600;height=375" href="#apparition<?php echo $data->id ?>">
    			        Répondre
    			      </a>
     
     
    				<div id="apparition<?php echo $data->id ?>" style="display:none;">
    					<span class="reply_at">Répondre à <?php echo $data->name; ?></span>
    					<form class="form_reply" action="../comment_recept.php" method="post">
    						<div class="input_left">
    							<input type="text" name="name" placeholder="Nom*" value="<?php echo $_SESSION['session_name']; ?>"><br/>
    							<input type="text" name="website"  placeholder="Site Web" value="<?php echo $_SESSION['session_website']; ?>">
    						</div>
     
    						<div class="input_right">
    							<input type="text" name="email"  placeholder="E-mail* (Ne sera pas affiché)" value="<?php echo $_SESSION['session_email']; ?>"><br/>
    							<input type="text" name="capcha"  placeholder="Combien font 15+3 ?*">
    						</div>
     
    						<input type="hidden" name="id_form" value="<?php echo $data->id; ?>" />
     
    						<textarea name="comment" placeholder="Votre message*"><?php echo $_SESSION['session_comment']; ?></textarea>
    						<input class="send_comment" type="submit" value="Envoyer">
    					</form>
    				</div>
    			</div>
    	<?php
    		}
     
    		if($data->id_reply != 0){
    			?>
    			<div class="comments_send">
    				<div class="comments_reply">
    					<div class="arrow">
    						<img src="../img/arrow_reply.png" alt="Réponse de <?php echo $data_reply->name; ?> à <?php echo $data->name; ?>">
    					</div>
     
    					<?php
    						$req_nrv = "SELECT * FROM comment WHERE id = $data->id_reply";			
    						$result_nrv = mysql_query($req_nrv) or die(mysql_error());
     
    						while($data_nrv = mysql_fetch_object($result_nrv)){
    					?>
     
    							<div class="text_reply">
    								<?php
    									if(empty($data->website)){
    										echo '<span class="name_comment">' . $data->name . '</span>' . ' à ' . $data_nrv->name . ' :';
    									} else{
    								?>
    									<a href="<?php echo $data->website; ?>" target="_blank"><span class="name"><?php echo $data->name; ?></span></a>  à <?php echo $data_nrv->name; ?> :
    								<?php } ?>
    								<br/>
    								<span class="date"><?php echo $data->date_creation_fr ?></span>
    								<br/>
    								<span><?php echo $message; ?></span>
    								<br/>
    							</div>
     
    					<?php } ?>
    				</div>
    			</div>
     
    	<?php
    		}
    	?>
     
    	<?php
     
    	}
     
    ?>
    J'espère que vous saurez m'aider. J'ai essayé pas mal de solutions, après 2 jours à coder je pensais avoir enfin trouvé la solution donc je test et là surprise ça ne fonctionne pas :/ Je compte sur vous pour que vous puissiez m'indiquer la solution que je puisse comprendre mes erreurs et avancer dans mon travail. Je suis disponible pour d'éventuelles questions, mon problème et mon code ne sont peut-être pas assez clairs.

    Merci à vous

  2. #2
    Membre régulier
    Homme Profil pro
    Responsable d'équipe
    Inscrit en
    Novembre 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable d'équipe
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2015
    Messages : 42
    Points : 72
    Points
    72
    Par défaut
    Bonjour à toi,

    Ton post date un peu mais je vois qu'il n'est toujours pas résolu.

    Je rencontre aujourd'hui le même problème que toi...

    As-tu trouvé la solution?

    En te remerciant.

  3. #3
    Membre actif
    Homme Profil pro
    Sysadmin Linux
    Inscrit en
    Mars 2017
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Sysadmin Linux

    Informations forums :
    Inscription : Mars 2017
    Messages : 76
    Points : 200
    Points
    200
    Par défaut
    Salut Dargar,

    Pourrais-tu nous montrer ton code ? (ainsi que sa structure mySQL)

    Le code de Aiglichon est depracated a l'heure actuelle.

  4. #4
    Membre régulier
    Homme Profil pro
    Responsable d'équipe
    Inscrit en
    Novembre 2015
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Responsable d'équipe
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2015
    Messages : 42
    Points : 72
    Points
    72
    Par défaut
    Bonjour,

    Voici mes codes ainsi que mes relations :

    Nom : relation test 1.png
Affichages : 481
Taille : 98,7 Ko

    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
    <?php
    	//se connecte à la base de données
    			try
    			{
    			$bdd = new PDO('mysql:host=localhost;dbname=test1','root','$$$');		
    			}
    			catch (Exception $e)
    			{
    			die('Erreur : '.$e->getMessage());			
    			}
    			$reponse = $bdd->query("SELECT * FROM requete_1");		
    			//affichage req_1 et user
    			while ($donnees=$reponse->fetch())
    			{
    			$id_req_1=$donnees['id_req_1'];
    			echo '<p>' . htmlspecialchars($donnees['req_1']) . ' : <strong>'.htmlspecialchars($donnees['user']) . '</strong><p/>';
     
    			$reponse = $bdd->query("SELECT * FROM requete_2 WHERE id_req_1_r2= ". $id_req_1."");		
    			//affichage req_2 et user
    			while ($donnees=$reponse->fetch())
    			{
    			$id_req_2=$donnees['id_req_2'];
    			echo '<p>' . htmlspecialchars($donnees['req_2']) . ' : <strong>'.htmlspecialchars($donnees['user']) . '</strong><p/>';
    			}
    			}
    			$reponse->closeCursor();
    			?>
    Nom : affichage test 1.png
Affichages : 449
Taille : 35,5 Ko

    Après avoir essayer une multitude de chose je ne pense pas y arriver avec ma méthode.

    Ma boucle se termine avec les éléments de la deuxième requête.

    En effet dans ma BDD j'avais mis 2 textes ou chacun disposait de plusieurs sous commentaires... et quoique je fasse un seul des 2 textes principaux s'affichent.

    Ma logique n'est pas bonne car je transforme l'ID en variable et elle n'existe que dans la boucle...

    Une collègue m'a montré le MVC et je pense plutôt m'orienter vers cette piste pour résoudre mon problème.

    Ça risque d'être un peu long mais dès que j'y arrive je posterai ici.

    Encore merci

Discussions similaires

  1. [MYSQL] Commentaires sur les tables et les champs
    Par luc2verga dans le forum Requêtes
    Réponses: 10
    Dernier message: 29/05/2007, 23h49
  2. commentaire sur une image
    Par WBO dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 23/05/2005, 09h15

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