CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : Probleme php billet articles

DébutPage précedente
1
Page suivantePage suivante
jas75 jas75
MP
Niveau 7
13 février 2016 à 17:04:57

Bonjour a tous je suis entrain de créer un blog et je suis bloqué sur un code. lorsque je poste un commentaire sur un billet le commentaire s affiche sur tous les billets ! je suis perdu voici mon code :

jas75 jas75
MP
Niveau 7
13 février 2016 à 17:05:52
 <?php
	session_start();
	if (isset($_SESSION['id'])) {
?>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title> Bloggy </title>
		<link rel="stylesheet" type="text/css" href="inscription.css">
		
	</head>

	<body>
		<div id="container">
			<?php
			include('header.html');
			?>
			<section>
				<article>
					<?php
					try{
						$bdd=new PDO('mysql:host=localhost;dbname=test','root','root');
						$bdd->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
					}
					catch(Exception $e){
						die('Erreur connexion base de donnée'.$e->getMessage());
					}
					$req=$bdd->query('SELECT billets.titre,billets.date_creation,billets.contenu,user.pseudo,billets.id
									 FROM billets,user
									 WHERE user.id = billets.id_user
									 ORDER BY billets.id 
									 DESC');

					while ($donnees=$req->fetch())
					 {				
					?>
					<div id="billet">
						<div id="titreBillet">
							<h2><?php  echo htmlspecialchars($donnees['titre']);?></h2>
							<div>
								<em>Posté à <?php echo $donnees['date_creation'];?> par 
								<?php echo htmlspecialchars($donnees['pseudo']); ?></em>
							</div>
						</div>

						<div id="txt">
							<?php
								echo htmlspecialchars($donnees['contenu']);
							?>
						</div>
						<div id="coms">
							
							<form method="post" action="addCom.php?billet=<?php echo $donnees['id'];?>">

								<table>
									<tbody>
										<tr>
											<td>
												<textarea style="resize:none;width:800px;" name="comPost"></textarea>
											</td>

											<td>
												<input type="submit" style="font-size:1.5em;">
											</td>
										</tr>
									</tbody>
								</table>
							</form>
							<?php
								
								$req1=$bdd->query('SELECT user.pseudo, commentaires.commentaire, commentaires.date_com
													FROM user,billets,commentaires
													WHERE commentaires.id_user=user.id
													AND commentaires.id_billet=billets.id
													ORDER BY commentaires.id
													DESC');
								while ($donnees1=$req1->fetch()) {
							?>
							<div id="comsRep">
							
								<em>Posté a <?php echo $donnees1['date_com'];?> par <?php echo $donnees1['pseudo'];?></em>
								<p><?php echo $donnees1['commentaire'].'<br>';?></p>
							</div>
							<?php
							}	
							?>
						</div>
					</div>
					<?php
					}	
					?>
				</article>
			</section>
		</div>
	</body>
</html>
<?php }else{
	header('location:inscription.php');
}?>
jas75 jas75
MP
Niveau 7
13 février 2016 à 17:09:13

le code de la page addCom.php :

<?php
try{
$bdd= new PDO('mysql:host=localhost;dbname=test;charset=utf8','root','root');
$bdd->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}
catch(Exception $e){
die('Erreur connexion a la base de donnée'.$e->getMessage());
}
session_start();
$id_user = $_SESSION['id'];
$id_billet = $_GET['billet'];
$req=$bdd->prepare('INSERT INTO commentaires(commentaire,id_billet,id_user,date_com)
VALUES (?,?,?,NOW())');
$req->execute(array($_POST['comPost'],$id_billet,$id_user));
header('location:blog.php?billet='.$id_billet);
?>

Pseudo supprimé
Niveau 7
13 février 2016 à 17:22:27

il faut liée un article a un commentaire banane ! sinon tu sais comment que ce commentaire apartien à cette article ?

PS: enleve les die et autre catche merci !

jas75 jas75
MP
Niveau 7
13 février 2016 à 17:24:31

D'accord je veux bien (comme si j'y avais pas deja pensé ...)
Quelle est la facon de procéder dans ce cas la !!

jas75 jas75
MP
Niveau 7
13 février 2016 à 17:25:07

jointure ?

jas75 jas75
MP
Niveau 7
13 février 2016 à 17:27:39

commentaire.id_billet=billets.id c est la que j'ai lié l 'article au commentaire

deepblue deepblue
MP
Niveau 13
13 février 2016 à 17:53:55
SELECT user.pseudo, commentaires.commentaire, commentaires.date_com
FROM user,billets,commentaires
WHERE commentaires.id_user=user.id
AND commentaires.id_billet=billets.id
ORDER BY commentaires.id
DESC

À quel moment indiques-tu de ne récupérer que les commmentaire dont l'id_billet est celui du billet affiché ? Jamais. Tu dois donc ajouter une condition.

Je te conseille revoir tes jointures, c'est du SQL à l'ancienne ici :ok:

jas75 jas75
MP
Niveau 7
13 février 2016 à 18:14:39

Bonjour, ca ne m aide pas du tout merci

Pseudo supprimé
Niveau 7
13 février 2016 à 18:23:46

Le 13 février 2016 à 18:14:39 jas75 a écrit :
Bonjour, ca ne m aide pas du tout merci

[[sticker:p/1jnc]]

On te dis qu'il manque quelque chose banane :)

Pseudo supprimé
Niveau 7
13 février 2016 à 18:24:58

regarde ta table commentaires la clef étrangère !

jas75 jas75
MP
Niveau 7
13 février 2016 à 18:33:46

ecoutez je suis a deux doigts de lancer mon ordinateur par la fenetre, il est évident que je n'arrive pas a trouver la reponse par moi meme, si vous pouviez me la donner au lieu de me lancer des enigmes depuis plus d'une heure ce serait fort sympathique de votre part merci

Pseudo supprimé
Niveau 7
13 février 2016 à 18:41:38

Le 13 février 2016 à 18:33:46 jas75 a écrit :
ecoutez je suis a deux doigts de lancer mon ordinateur par la fenetre, il est évident que je n'arrive pas a trouver la reponse par moi meme, si vous pouviez me la donner au lieu de me lancer des enigmes depuis plus d'une heure ce serait fort sympathique de votre part merci

C'est n'est pas une énigme, mec. je ne sais pas si tu suis des cours ou si tu es autodidactes.
quoiqu'il en soit si tu ne vois pas le problèmes, tu peux remettre en question ta fonction de développeur.

Je t'invite à faire une pause et a revenir quand tu sera frais sur ton code.

et là si tu ne vois rien va suivre un cours sur le sql !

jas75 jas75
MP
Niveau 7
13 février 2016 à 18:46:16

je n'ai pas a remettre en question ma fonction de développeur je suis actuellement en apprentissage ca me parait tout a fait normal au début de buter sur des choses qu'un pro pourrait paraitre evidente enfin bref je me retrouve a me justifier sur un forum de jeux video.
de base si je suis venu demander de l'aide sur un forum ce n'est pas pour qu on me dise de chercher l érreur par moi meme ou encore de remettre en question ma fonction de dev ... simplement pour me donner la réponse histoire que je comprenne l erreur et que je passe a la suite

Pseudo supprimé
Niveau 7
13 février 2016 à 20:25:06

Le 13 février 2016 à 18:46:16 jas75 a écrit :
je n'ai pas a remettre en question ma fonction de développeur je suis actuellement en apprentissage ca me parait tout a fait normal au début de buter sur des choses qu'un pro pourrait paraitre evidente enfin bref je me retrouve a me justifier sur un forum de jeux video.
de base si je suis venu demander de l'aide sur un forum ce n'est pas pour qu on me dise de chercher l érreur par moi meme ou encore de remettre en question ma fonction de dev ... simplement pour me donner la réponse histoire que je comprenne l erreur et que je passe a la suite

C'est pas une erreur de débutant ! C'est un problème de logique.
Et tu comprend même pas nos explication qui sont claire.

À quel moment indiques-tu de ne récupérer que les commentaire dont l'id_billet est celui du billet affiché ? Jamais. Tu dois donc ajouter une condition.

Je suis pas doué en français c'est claire quand même !
Surtout que tu as du avoir un cours là-dessus !

ça sera quoi quand tu devras utiliser un ORM ? et la POO ? Si tu bloque sur des problème aussi simple pose toi des questions ( parles-en autour de toi surtout)

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : Thymotep
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

La vidéo du moment