Problème requête SQL -> selection multiple

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème requête SQL -> selection multiple

Re: Problème requête SQL -> selection multiple

par dix2 » 28 oct. 2014, 10:49

Salut,

Pour ton premier message, au lieu de faire un "GROUP BY", tu peux faire un "SELECT DISTINCT voyage_theme FROM ...", le "GROUP BY", ça sert plutôt à faire des opérations ensemblistes comme : calculer le nombre de voyages par pays ...
et sinon, encore mieux, faire une table "voyage_theme" qui va contenir tous les thèmes et qui sera reliée à la table "voyages" car actuellement ton architecture présente un problème :
si tu souhaites récupérer la liste de tous les thèmes et si un thème n'est pas répertorié dans la table "voyages", il ne sera pas présent dans les résultats de ta requête

@+
dix2

Re: Problème requête SQL -> selection multiple

par ynx » 28 oct. 2014, 09:58

Tu utilises la requête
SELECT * FROM voyages WHERE voyage_id=$_POST[pays]
Donc Mysql ne te renvoie que le voyage qui a pour id $_POST['pays']

Ne serait-ce pas plutôt
SELECT * FROM voyages WHERE voyage_pays=$_POST[pays]
?

Re: Problème requête SQL -> selection multiple

par MaxenceB10 » 27 oct. 2014, 17:59

Merci, parfait !


J'ai un autre soucis maintenant, quand j'affiche le résultat, il ne m'affiche que le 1er des 3 voyages situés en France.

Merci d'avance..

voilà une autre image :

http://hpics.li/f0d19f7


ainsi que le code :


<div class="col-md-10 col-md-offset-1">

<h1>Voyage en<?php echo $_POST['pays'] ?></h1>
<br/>
<?php
$db = new mysqli(BDD_SERVEUR,BDD_USER,BDD_PASS,BDD_BDD);
echo "<table class=\"table \" border=\"1\">";
$rq="SELECT * FROM voyages WHERE voyage_id=$_POST[pays] ";
$tout=$db->query($rq);

echo "<table class=\"table table-striped\">";
echo "<tr><th>ID</th>
<th>Designation</th>
<th>pays</th>
<th>ville</th>
<th>prix</th>
<th>Limite de personne:</th>
</tr>";

while ($unarticle=$tout->fetch_object()){
echo "<tr><td>";
echo $unarticle->voyage_id."<br/>";
echo "</td>";
echo "<td>";
echo $unarticle->voygae_nom."<br/>";
echo "</td>";
echo "<td>";
echo $unarticle->voyage_pays."<br/>";
echo "</td>";
echo "<td>";
echo $unarticle->voyage_ville."<br/>";
echo "</td>";
echo "<td>";
echo $unarticle->voyage_prix."<br/>";
echo "</td>";
echo "<td>";
echo $unarticle->voyage_persmax."<br/>";




echo "</td></tr>";
}
echo "</table>";
?>
</div>

Re: Problème requête SQL -> selection multiple

par ynx » 27 oct. 2014, 17:46

Salut,

Tu peux utiliser la clause sql GROUP BY :
SELECT voyage_id, voyage_theme FROM voyages GROUP BY voyage_theme ORDER BY voyage_theme
Bonne journée

Problème requête SQL -> selection multiple

par MaxenceB10 » 27 oct. 2014, 17:08

Bonjour,

Etudiant en DUT MMI, j'ai un petit soucis pour une requête, je m'explique.
Nous devons réaliser un site de voyage, j'ai une table voyages sur ma BDD, le code ci-dessous fonctionne parfaitement à une exception prêt, c'est que dans mon selecteur, il m'affiche 4 fois le même " thème " de voyage, oui car dans la bdd chaque voyage a un thème attribué.
Je voudrai qu'il m'affiche seulement une fois le thème en question.
Voila le code et une capture d'écran du résultat !

Merci d'avance

LE RESULTAT:

http://hpics.li/ccf1d7a


LE CODE :


<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<title>Dutaf</title>

<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">


</head>
<body>

<div class="content col-md-10 col-md-offset-1">

<h1>Selection d'un pays</h1>


<form method="POST" role="form" action="rep_requete_theme.php">


+ bouton selct fournisseur en dessous -->

<?php
include ('config.php');
$db=new mysqli(BDD_SERVEUR,BDD_USER,BDD_PASS,BDD_BDD);

$req='SELECT * FROM voyages ORDER BY voyage_theme';

$tous=$db->query($req); //execution
?>
<select class="form-control" name="theme">
<?php
while ($untheme=$tous->fetch_object()) {
echo '<option value="'.$untheme->voyage_id.'">'.$untheme->voyage_theme.'</option>';
}
?>
</select>



<?php
$db->close();

?>



<br/>
<div class="form-group">
<button type="submit" class="btn btn-default">Envoyer</button>


</div>


</form>


</div>


<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/j ... "></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/bootstrap.min.js"></script>
</body>
</html>