<?php
$connexion = mysql_connect("localhost","root","");
if ($connexion)
{
// connexion réussie
mysql_select_db("hotel",$connexion);
$requete="select nom,taille from chambre where categorie='".$_POST["categorie"]."';";
$nb=0;
echo "<h1>Liste des chambre de la catégorie</h1>";
echo '<p /><table border="2" width="75%">';
echo "<tr><th>NOM</th><th>Taille</th></tr>";
$resultat= mysql_query($requete,$connexion);
$ligne=mysql_fetch_assoc($resultat);
while($ligne)
{
echo "<tr><td>".$ligne["nom"]."</td><td>".$ligne["taille"]."</td></tr>";
$nb++;
$ligne=mysql_fetch_assoc($resultat);
}
echo "</table><p />";
echo "Il y a ".$nb." employés.";
}
else
{
echo "problème à la connexion <br />";
}
mysql_close($connexion);
?>
Déjà il me fout un message qui me dit que mysql_connect est dépassé et qu'il faut utiliser, entre autre PDO, mais je sait pas quelles sont les ligne à changer pour que tout soit "harmoniser", ensuite il me met ce message:$resultat= mysql_query($requete);
Si tu veux pas de PDO, tu peux utiliser mysqli_connect : http://php.net/manual/fr/function.mysqli-connect.php$reponse = $bdd->query('SELECT nom, taille, prix, description, photo FROM chambre');
Sachant que mon formulaire est en méthode 'post' qu'est ce que je dois rajouter pour que la requete aille chercher les chambre de la catégorie choisie? CREATE TABLE categorie(
idcategorie INT(3) NOT NULL,
nom VARCHAR(20) NOT NULL,
CONSTRAINT pkcategorie PRIMARY KEY (idcategorie)
);
CREATE TABLE chambre(
idchambre INT(3) NOT NULL,
idcategorie INT(3) NOT NULL,
nom VARCHAR(20) NOT NULL,
taille VARCHAR(30) NOT NULL,
description TEXT,
prix DECIMAL(5,2),
photo VARCHAR(30),
CONSTRAINT pkchambre PRIMARY KEY (idchambre),
CONSTRAINT fkcategorie FOREIGN KEY (idcategorie) REFERENCES categorie(idcategorie)
);
Voila merci
<select name="categorie" size="5">
<option selected value = "1">Catégorie 1</option>
<option value = "2">Catégorie 2</option>
<option value = "3">Catégorie 3</option>
</select>
il te faut récupérer ta variable par exemple $_POST["categorie"]) qui aura, par exemple, les valeurs au choix 1 ou 2 ou 3.$desc = $_POST["description"];
$reponse = $bdd->query("SELECT nom, taille, prix, description, photo FROM chambre WHERE description = '".$desc."'");
Ensuite tu as d'autres fonction de recherche comme LIKE avec des caractères spécaixu assez pratiques % ou _
$reponse = $bdd->query("SELECT nom, taille, prix, description, photo FROM chambre WHERE description LIKE '%".$desc."%'");
Ainsi _ peux remplacer un caractère au choix et % peut être considéré comme l’équivalent de * dans les recherches en mode console (ex. *win32*.dll)$desc = $_POST["description"];
$reponse = $bdd->query("SELECT nom, taille, prix, description, photo FROM chambre WHERE description = '".$desc."'");
Pourquoi $_POST["decription"] et pas $_POST["categorie"] ????? Pareil pour $desc j'ai pas trop compris<form action="categorie.php" method="post">
<p />Sélectionnez la catégorie souhaitée: <p />
<select name="categorie" size="5">
<option selected value = "1">Discount</option>
<option value = "2">Classique</option>
<option value = "3">Luxe</option>
</select>
<p /><input type="submit" value="afficher la liste"><p />
</form>
Devrais pouvoir charger 1 des 3 catégories via ce php:<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$cat = $_POST["categorie"];
$reponse = $bdd->query("SELECT nom, taille, prix, description, photo FROM chambre WHERE categorie LIKE '%".$cat."%'");
while ($donnees = $reponse->fetch())
{
?>
<p>
<strong>Chambre</strong> : <?php echo $donnees['nom']; ?><br />
La taille de cette chambre est: <?php echo $donnees['taille']; ?>, et elle se loue à <?php echo $donnees['prix']; ?> euros !<br />
Sa description est : <em><?php echo $donnees['description']; ?></em> <?php echo $donnees['photo']; ?>
</p>
<?php
}
$reponse->closeCursor();
?>
La dernière partie est temporaire, une fois que j'aurai réussi a afficher les valeur je pensait les afficher dans un tableau, mais encore faut il que j'arrive à les afficher.
Tu as raison ! Le name est catégorie <select name="categorie" size="5"> (pas bien réveillé moi hier....)Je remercie pour ton aide mais pourPourquoi $_POST["decription"] et pas $_POST["categorie"] ????? Pareil pour $desc j'ai pas trop compris$desc = $_POST["description"]; $reponse = $bdd->query("SELECT nom, taille, prix, description, photo FROM chambre WHERE description = '".$desc."'");
$reponse = $bdd->prepare("SELECT nom, taille, prix, description, photo FROM chambre WHERE categorie LIKE '%".$cat."%'"");
$reponse->execute();
while ($donnees = $reponse->fetch())
{
?>
<p>
<strong>Chambre</strong> : <?php echo $donnees['nom']; ?><br />
La taille de cette chambre est: <?php echo $donnees['taille']; ?>, et elle se loue à <?php echo $donnees['prix']; ?> euros !<br />
Sa description est : <em><?php echo $donnees['description']; ?></em> <?php echo $donnees['photo']; ?>
</p>
<?php
}$cat = $_POST["categorie"];
$reponse = $bdd->query("SELECT nom, taille, prix, description, photo FROM chambre WHERE idcat LIKE '%".$cat."%'");
$reponse->execute();
Mais toujours le même message, par contre par rapport à BDD j'ai modifié la ligne :WHERE idcat LIKE '%".$cat."%'");
Car j'ai pas de champs catégorie dans ma table chambre.VALUES (001,001, 'Chambre 1 place discount', '1 place', 'Chambre petit budget pour 1 personne', 020.00, 'img1.jpg');
Mais mon PHP: <?php
try
{
$dbh = new PDO('mysql:host=localhost;dbname=hotel', 'root', '');
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo 'Échec lors de la connexion : ' . $e->getMessage();
}
$cat = $_POST["categorie"];
$reponse = $dbh->query("SELECT taille, prix, description, photo FROM chambre WHERE idcategorie LIKE '%".$cat."%'");
$reponse->execute();
while ($donnees = $reponse->fetch())
{
?>
<TABLE border="1" width="100%">
<TR>
<TD width="20%"><em><?php echo $donnees['description']; ?></em>
<TD width="20%"><?php echo $donnees['taille']; ?>
<TD width="20%"><?php echo $donnees['prix']; ?> euros la nuit
<TD width="20%"><?php echo $donnees["photo"]; ?>
</TABLE>
<?php
}
$reponse->closeCursor();
?>
La ligne <TD width="20%"><?php echo $donnees["photo"]; ?> affiche "img1.jpg", je voudrais savoir comment lui faire afficher une image qui se trouve dans un dossier "images" situé dans le même emplacement.