Partage

Requête sql ne s'intègre pas dans ma bdd

22 juin 2018 à 14:25:07

Bonjour à tous et à toute, 

Alors voila j'ai un problème au niveau de l'insertion d'une variable dans ma bdd 

Le contexte : 

Je propose des tests qui sont relié à un cours avec un niveau de difficulté (facile, moyen, difficile) 

J'aimerai que le membre qui réussi un test de niveau facile reçoive 10 points, moyen 20 points et difficile 30 points 

De plus les points sont censé s'accumuler directement dans la base de donnée (je les utiliserais plus tard pour restreindre l'accès à certain test) 

Cependant, les points qui s'insère dans ma bdd sont toujours égaux à 0... 

Du coup j'en appelle à vous pour essayer de me débloquer ! :) 

Voici mon script addPoint.php : 

<?php 

$point = $connection->query('SELECT * FROM membre INNER JOIN result_test ON result_test.id = membre.id INNER JOIN test ON result_test.id_test = test.id INNER JOIN cours ON test.id = cours.id WHERE result_test.id = membre.id AND test.cours = cours.name ');

$note = $point->fetch(PDO::FETCH_ASSOC);
$result = $note['result_test'];
$tpoint = $note['tpoint'];

if ($result >= 6) {
	if ($point['level']=="facile"){
		$tpoint += 10;
		$add ="UPDATE membre SET tpoint = ".$tpoint."";
		$addPoint = $connection->query($add);

		}elseif ($point['level']=="moyen") {
		$tpoint +=20;
		$add ="UPDATE membre SET tpoint = ".$tpoint."";
		$addPoint = $connection->query($add);

		}else {
		$tpoint += 30;
		$add ="UPDATE membre SET tpoint = ".$tpoint."";
		$addPoint = $connection->query($add);

		}

}else{
	$tpoint += 0;
	$add ="UPDATE membre SET tpoint = ".$tpoint."";
	$addPoint = $connection->query($add);

}

?>

Que je require dans ma page html : 

	<?php
		require_once "script/addPoint.php"; 
	?>
			<div class=" container-fluid row">
				<div class="col-lg-6">
					<?php
						if($NBreqc_t['NBreqc_t']>0){
					?>
					<h3>Corriger des tests</h3>
					<br>
					<div class="container">
						<center>
							<div class="row">
					      <?php foreach ($correct_test as $ct) { ?>
					        <div class="col-md">
					          <div class="card" style="width: 18rem;">
					            <div class="card-body">
					              <h5 class="card-title"><?= ucfirst($ct['name']) ?></h5>
												<h6>
													<?php
													$date = $ct['date_answer'];
													echo date('d/m/Y à H:i:s', strtotime($date));
				 									?>
												</h6>

												<button type="button" class="btn btn-modify" data-toggle="modal" data-target="#correct_exModal">
													  Corriger le test
													</button>

												<!-- Modal -->
												<div class="modal fade" id="correct_exModal" tabindex="-1" role="dialog" aria-labelledby="coursModalLabel" aria-hidden="true">
													<div class="modal-dialog" role="document">
														<div class="modal-content">
															<div class="modal-header">
																<h5 class="modal-title" id="coursModalLabel">Correction du test</h5>
																<button type="button" class="close" data-dismiss="modal" aria-label="Close">
													          <span aria-hidden="true">&times;</span>
													        </button>
															</div>
															<div class="modal-body">
																<form method="POST">
																	<center>
																		<div class="form-group col-md breadcrumb">
																			<h4><?= $ct['consigne'] ?></h4>
																			<input name="consigne" value="<?= $ct['consigne'] ?>" hidden>
																			<p style="color:#1f51ac"><?= $ct['content'] ?></p>
																			<input name="answer" value="<?= $ct['content'] ?>" hidden>
																				<input type="text" name="correct" placeholder="Correction réponse n°1" required="required" class="form-control" aria-describedby="correctHelp">
																		</div>
																	</center>
																	<br>
																	<center>
																		<div class="form-group col-md breadcrumb">
																			<h4><?= $ct['consigne2'] ?></h4>
																			<input name="consigne2" value="<?= $ct['consigne2'] ?>" hidden>
																			<p style="color:#1f51ac"><?= $ct['content2'] ?></p>
																			<input name="answer2" value="<?= $ct['content2'] ?>" hidden>
																			<input type="text" name="correct2" placeholder="Correction réponse n°2" required="required" class="form-control" aria-describedby="correctHelp">
																		</div>
																	</center>
																	<br>
																	<center>
																		<div class="form-group col-md breadcrumb">
																			<h4><?= $ct['consigne3'] ?></h4>
																			<input name="consigne3" value="<?= $ct['consigne3'] ?>" hidden>
																			<p style="color:#1f51ac"><?= $ct['content3'] ?></p>
																			<input name="answer3" value="<?= $ct['content3'] ?>" hidden>
																			<input type="text" name="correct3" placeholder="Correction réponse n°3" required="required" class="form-control" aria-describedby="correctHelp">
																		</div>
																	</center>
																	<br>
																	<center>
																		<div class="form-group col-md breadcrumb">
																			<h4><?= $ct['consigne4'] ?></h4>
																			<input name="consigne4" value="<?= $ct['consigne4'] ?>" hidden>
																			<p style="color:#1f51ac"><?= $ct['content4'] ?></p>
																			<input name="answer4" value="<?= $ct['content4'] ?>" hidden>
																			<input type="text" name="correct4" placeholder="Correction réponse n°4" required="required" class="form-control" aria-describedby="correctHelp">
																		</div>
																	</center>
																	<br>
																	<center>
																		<div class="form-group col-md breadcrumb">
																			<h4><?= $ct['consigne5'] ?></h4>
																			<input name="consigne5" value="<?= $ct['consigne5'] ?>" hidden>
																			<p style="color:#1f51ac"><?= $ct['content5'] ?></p>
																			<input name="answer5" value="<?= $ct['content5'] ?>" hidden>
																			<input type="text" name="correct5" placeholder="Correction réponse n°5" required="required" class="form-control" aria-describedby="correctHelp">
																		</div>
																	</center>
																	<br>
																	<center>
																		<div class="form-group col-md breadcrumb">
																			<h4><?= $ct['consigne6'] ?></h4>
																			<input name="consigne6" value="<?= $ct['consigne6'] ?>" hidden>
																			<p style="color:#1f51ac"><?= $ct['content6'] ?></p>
																			<input name="answer6" value="<?= $ct['content6'] ?>" hidden>
																			<input type="text" name="correct6" placeholder="Correction réponse n°6" required="required" class="form-control" aria-describedby="correctHelp">
																		</div>
																	</center>
																	<br>
																	<br>
																	<center>
																		<div class="form-group col-md breadcrumb">
																			<h4>NOTE/12</h4>
																			<h6>2 points par question, à vous d'ajuster la note selon la qualité de réponse</h6>
																			<input class="col-md-2" type="number" max="12" min="0" name="notet" placeholder="Note du test" required="required" class="form-control" aria-describedby="noteHelp">
																		</div>
																	</center>

															</div>
															<div class="modal-footer">
																<input name="id_correct2" value="<?= $ct['id_correct'] ?>" hidden>
																<input name="id_test" value="<?= $ct['id_test'] ?>" hidden>
																<input name="id_membre2" value="<?= $ct['id_membre'] ?>" hidden>

																<button type="button" class="btn btn-secondary" data-dismiss="modal">Annuler</button>
																<button type="submit" class="btn btn-info">Corriger et mettre la note</button>
															</div>
															</form>
														</div>
													</div>
												</div>
												<br>
					            </div>
					          </div>
					          <br>
					          <br>
					        </div>
					      <?php
									}
								?>
							</div>
					  </center>
					</div>
					<?php
						}else {
							?>
							<h4>Il n'y a actuellement aucun tests à corriger !</h4>
							<?php
						}
					?>
				</div>

Merci d'avance pour vos réponses et votre aide ! 

22 juin 2018 à 14:34:03

Bonjour,

As-tu au moins regardé par curiosité ce que renvoyait $tpoint ?

Parce que là, tu ne prends qu'un résultat...

22 juin 2018 à 14:45:52

J'ai réussi à afficher le résultat mais finalement c'est ma requete sql qui ne renvoie rien...

-
Edité par LouisG. 22 juin 2018 à 15:13:37

22 juin 2018 à 15:29:47

Déjà, ta requête n'est pas logique tu fais une jointure et remets la condition dans le where. Ceci suffirait :

$point = $connection->query('SELECT * FROM membre 
INNER JOIN result_test ON result_test.id = membre.id 
INNER JOIN test ON result_test.id_test = test.id 
INNER JOIN cours ON test.id = cours.id 
WHERE test.cours = cours.name ');


On peut alors remarquer que tu fais la jointure entre `test`et `cours`à la fois sur test.id = cours.id et sur test.cours = cours.name

Requête sql ne s'intègre pas dans ma bdd

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown