Requêtes liant plusieurs tables
Posté : 07 juin 2021, 11:39
Bonjour à tous,
Je suis une stagiaire débutante en php.
Je travaille sur un site de réparation mobile.
Pour faire sa demande de réparation , le client doit choisir sa marque, son modèle et ses pannes afin que le prix s'affiche.
Je suis bloquée au niveau de l'affichage du prix.
Sachant que le prix diffère selon le centre choisit ( 1 seul pour le moment).
Du coup j'ai 5 tables
marque
modèles
pannes
prestataire
prestataire_tarif.
Je vous met donc mes codes
select.php
Je vous remercie beaucoup . Je suis désespérée
Je suis une stagiaire débutante en php.
Je travaille sur un site de réparation mobile.
Pour faire sa demande de réparation , le client doit choisir sa marque, son modèle et ses pannes afin que le prix s'affiche.
Je suis bloquée au niveau de l'affichage du prix.
Sachant que le prix diffère selon le centre choisit ( 1 seul pour le moment).
Du coup j'ai 5 tables
marque
modèles
pannes
prestataire
prestataire_tarif.
Je vous met donc mes codes
select.php
<?php
// Include the database connection file
include('config.php');
?>
<!DOCTYPE html>
<html>
<head>
<title>Mongaragemobile choix</title>
<!-- BootStrap CSS CDN-->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
<!-- jQuery CDN -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<!-- JavaScript CDN For BootStrap -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
</head>
<body>
<fieldset>
<legend>Complétez les éléments à propos de votre smartphone et de sa panne</legend>
<br />
<form action="" method="post">
<div class="col-md-4">
<select class="form-control" id="marque" required>
<option value="">Choisissez la marque de votre téléphone</option>
<?php
$query = "SELECT * FROM marque";
$result = $con->query($query);
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo '<option value="'.$row['id'].'">'.$row['marque_name'].'</option>';
}
}else{
echo '<option value="">Marque pas disponible</option>';
}
?>
</select>
<br />
<select class="form-control" id="model"required>
<option value="">Choisissez le modèle de votre téléphone</option>
</select>
<br />
<select class="form-control" id="pannes" require>
<option value="">Choisissez la panne de votre téléphone</option>
</select>
</fieldset><br />
<div id="affichage"></div>
<fieldset>
<legend>Renseignez vos informations afin qu'on vous contacte rapidement</legend>
<div class="form-row">
<div class="form-group col-md-6">
<label for="inputEmail4">Adresse électronique</label>
<input type="email" class="form-control" id="inputEmail4" placeholder="Adresse électronique">
</div>
<div class="form-group col-md-6">
<label for="inputName">Nom</label>
<input type="name" class="form-control" id="inputName" placeholder="Nom">
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="inputLname">Prenom</label>
<input type="text" class="form-control" id="inputLname" placeholder="Prenom">
</div>
<div class="form-group col-md-6">
<label for="inputAddress">Adresse</label>
<input type="text" class="form-control" id="inputAddress" placeholder="Indiquez numéro de voie,nom de rue">
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label for="inputZip">Code de postale</label>
<input type="text" class="form-control" id="inputZip">
</div>
<div class="form-group col-md-6">
<label for="inputState">Ville</label>
<input type="text" class="form-control" id="inputState">
</div>
</div>
<div class="form-group text-center">
<div class="form-check">
<input class="form-check-input" type="checkbox" id="gridCheck">
<label class="form-check-label" for="gridCheck">
J'accepte de recevoir des promotions ponctuelles de MGM
</label>
</div>
</fieldset>
<button type="submit" class="btn btn-primary">J'envoie mon téléphone en réparation</button>
</form>
<script type="text/javascript">
$(document).ready(function(){
// Marque dependent ajax
$("#marque").on("change",function(){
var marqueId = $(this).val();
$.ajax({
url :"ajax.php",
type:"POST",
cache:false,
data:{marqueId:marqueId},
success:function(data){
$("#model").html(data);
$('#pannes').html('<option value="">Choisissez la panne de votre téléphone</option>');
}
});
});
// model dependent ajax
$("#model").on("change", function(){
var modelId = $(this).val();
$.ajax({
url :"ajax.php",
type:"POST",
cache:false,
data:{modelId:modelId},
success:function(data){
$("#pannes").html(data);
}
});
});
// tarif dependent ajax
$("#prestataire_tarif").on("change", function(){
var prestataire_tarifId = $(this).val();
$.ajax({
url :"ajax.php",
type:"POST",
cache:false,
data:{prestataire_tarifId:prestataire_tarifId},
success:function(data){
$("#pannes").html(data);
}
});
});
});
</script>
</body>
</html>
ajax.php<?php
// Include the database connection file
include('config.php');
if (isset($_POST['marqueId']) && !empty($_POST['marqueId'])) {
// Fetch model name base on marque id
$query = "SELECT * FROM model WHERE marque_id = ".$_POST['marqueId'];
$result = $con->query($query);
if ($result->num_rows > 0) {
echo '<option value="">Choisissez le modèle de votre téléphone</option>';
while ($row = $result->fetch_assoc()) {
echo '<option value="'.$row['id'].'">'.$row['model_name'].'</option>';
}
} else {
echo '<option value="">Modèle non disponible </option>';
}
} elseif(isset($_POST['modelId']) && !empty($_POST['modelId'])) {
// Fetch pannes base on model id
$query = "SELECT * FROM pannes WHERE model_id = ".$_POST['modelId'];
$result = $con->query($query);
if ($result->num_rows > 0) {
echo '<option value="">Choisissez la panne de votre téléphone</option>';
while ($row = $result->fetch_assoc()) {
echo '<option value="'.$row['id'].'">'.$row['pannes_name'].'</option>';
}
} else {
echo '<option value="">Pannes pas disponible</option>';
}
// Fetch tarif base on pannes id
$query = "SELECT * FROM prestataire_tarif WHERE pannes_id = ".$_POST['pannesId'];
$result = $con->query($query);
var_dump($result);
if ($result->num_rows > 0) {
echo '<option value="">le prix de la réparation de votre smartphone est de.... € </option>';
while ($row = $result->fetch_assoc()) {
echo '<option value="'.$row['id'].'">'.$row['tarif_ht'].'</option>';
}
} else {
echo '<option value="">pas de prix disponible</option>';
}
}
?>
Je vous remercie beaucoup . Je suis désespérée