categorie afficher via php

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 : categorie afficher via php

Re: categorie afficher via php

par Sylvain95 » 05 janv. 2015, 18:15

Je n'arrive pas mettre le sujet comme résolu ^^ quand je l'ai posté c'était avec un compte "invité" la je suis sur un compte membre du même nom si quelqu'un peu m'aider

Re: categorie afficher via php

par Sylvain95 » 05 janv. 2015, 18:08

Je te remercie mais j'ai trouvé un code équivalent avant de voir le tiens mais merci quand même je poste celui que j'ai trouvé quand même et je vous remercie tous pour votre aide
<img src="images/<?php echo $donnees['photo']; ?>" alt="Photo chambre" />

Re: categorie afficher via php

par tof73 » 05 janv. 2015, 14:56

<TD width="20%"><img src="/images/<?php echo $donnees["photo"]; ?>" width="" height="" alt="" />

Re: categorie afficher via php

par Sylvain95 » 05 janv. 2015, 13:26

J'ai réussi !

Mes données s'affiche correctement maintenant je voudrais juste affiche une image, mes données sont organisées de la sorte:
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.

Après ces fini ^^ merci pour votre aide en tout cas

Re: categorie afficher via php

par Sylvain95 » 05 janv. 2015, 12:10

J'ai essayé comme tu m'as dit :
$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.

Re: categorie afficher via php

par Aureusms » 05 janv. 2015, 08:53

Il se pourrais que ta requête retourne une erreur.

Essaye via la préparation de requête :

$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
}

Re: categorie afficher via php

par Aureusms » 05 janv. 2015, 08:44

Je remercie pour ton aide mais pour
$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
Tu as raison ! Le name est catégorie <select name="categorie" size="5"> (pas bien réveillé moi hier....)

Re: categorie afficher via php

par Sylvain95 » 05 janv. 2015, 00:11

Je suis désolé d'insister mais mon projet est à rendre bientot et mais je suis bloqué

Je recapitule ce formulaire :
<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.

Sauf que j'ai cet erreur maintenant:

Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\Site\categorie.php on line 41

Merci à ceux qui prendront le temps de m'aider à trouver d’où vient cet erreur, si quelqu'un pense que le problème vient de ma BDD je peux la poster complétement.

Re: categorie afficher via php

par Sylvain95 » 04 janv. 2015, 21:47

Je remercie pour ton aide mais pour
$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

Re: categorie afficher via php

par Aureusms » 04 janv. 2015, 21:09

Toutes les variables envoyées par un formulaire en mode POST sont dans une supervariable "tableau" appellée $_POST.
Tu peux rapidement la consulter en faisant var_dump($_POST);

Si je pars de ton formulaire :
<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.
Je te conseille de "protéger" ta variable avec la fonction adéquate (selon si tu choisi mysqli ou PDO) puis de faire :
$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)

Re: categorie afficher via php

par Sylvain95 » 04 janv. 2015, 16:59

Sa commence à s'éclaircir dans ma tête mais imaginons je veux utiliser cette ligne:
$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?

Je vous met les 2 tables pour aider:
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

Re: categorie afficher via php

par tof73 » 04 janv. 2015, 15:42

$_POST["categorie"]
si ton formulaire est en méthode POST
$_GET["categorie"] si c'est du GET

Re: categorie afficher via php

par Sylvain95 » 04 janv. 2015, 13:22

En écrivant comme tu ma dit j'ai le même message d'erreur.

Et non ces pas que je veux pas utiliser PDO ces juste que je sais pas quelles lignes changer.

Pour être honnête ces un projet scolaire et le php que j'ai envoyé je l'ai récupéré sur un cours de mon prof. Mais après avoir lu un autre cours sur le net j'ai vu que mysql_connect était dépassé et qu'il était préférable d'utiliser PDO.

Re: categorie afficher via php

par Elie » 04 janv. 2015, 02:36

Il se passe quoi si tu fais juste :
$resultat= mysql_query($requete);
Si tu veux pas de PDO, tu peux utiliser mysqli_connect : http://php.net/manual/fr/function.mysqli-connect.php

Re: categorie afficher via php

par Sylvain95 » 04 janv. 2015, 02:26

Désolé pour le double post mais je vous montre mon php et ce qui bloque:
<?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:

Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\Site\categorie.php on line 38

Quelqu'un a une idée pour m'aider ^^ ?