Page 1 sur 1

associer une image à des données envoyées via un formulaire

Posté : 03 mars 2012, 17:38
par ironman
Bonjour,
je développe (j'essaye car je débute !!) une interface pour une location saisonnière. J'ai créé un formulaire de recherche ou le visiteur peut choisir une ville de location, une date et un prix max. Lorsque j'effectue ma requête dans la table studio (table qui contient les champs ville, dates, prix et image), j'ai les résultats qui s'affichent (ceux des champs remplis par le formulaire) et je voudrai y associer l'image qui correspond à la ville pour que les gens puissent cliquer dessus. Je sèche sur la manière d'associer les valeurs postés et cette image.
Avec le code suivant, ça me dit que la variable $image n'est pas déclarée, mais quand je la déclare ($image='image' je ne sais pas si c'est ça et où !!), la photo ne s'affiche pas (j'ai un carré blanc).
Le problème vient-il du code, où du contenu du champ image dans la table qui est l'adresse de l'image ?
Cette adresse doit-elle être du type http://localhost/wamp/www/location/images/img1.png ? (je travaille en local pour l'instant).

Merci pour votre aide, voici mon code :
<html>
<body>
<?php
// On commence par recuperer les champs
if(isset($_POST['ville']))      $ville=$_POST['ville'];
else      $ville="";
 
if(isset($_POST['dates']))      $dates=$_POST['dates'];
else      $dates="";
 
if(isset($_POST['prix']))      $prix=$_POST['prix'];
else      $prix="";
 
//faut-il déclarer $image ?
 
try
{
    // On se connecte a  MySQL
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host=localhost;dbname=location', 'root', '', $pdo_options);
   
$req = $bdd->prepare('SELECT ville, dates,prix FROM studio WHERE ville = :ville AND dates = :dates AND prix<=:prix');      //faut-il rajouter image avant FROM ?
$req->execute(array('ville' => $_POST['ville'], 'dates' => $_POST['dates'],'prix'=>$_POST['prix']));                                   //faut-il rajouter $image après ['prix'] ?
    echo '<ul>';
    while ($donnees = $req->fetch())
    {
        echo '<li>' . $donnees['ville'] . ' ' . $donnees['dates'] . ' '.$donnees['prix'].'<img src="'.$image['image'].'"/></li>';
       
    }
    echo '</ul>';
   
    $req->closeCursor();
}
catch(Exception $e)
{
    die('Erreur : '.$e->getMessage());
}
?>
</body>
</html>

Re: associer une image à des données envoyées via un formula

Posté : 03 mars 2012, 19:06
par xTG
Il faut ajouter le nom de la colonne contenant le chemin de l'image dans les champs sélectionnées.
Pour rappel :
SELECT [liste des champs]
FROM [nom de la table]
WHERE [condition(s)]

Re: associer une image à des données envoyées via un formula

Posté : 03 mars 2012, 22:44
par ironman
merci pour la réponse, mais ça ne résoud pas mon problème, même en mettant :
$req = $bdd->prepare('SELECT ville, dates,prix, image FROM studio WHERE ville = :ville AND dates = :dates AND prix<=:prix'); //j'ai rajouté image

echo '<li>' . $donnees['ville'] . ' ' . $donnees['dates'] . ' '.$donnees['prix'].'<img src="'.$donnees['image'].'"/></li>'; //j'ai mis $donnees à la place de $image
j'ai en retour : Undefined variable : image in C:\wamp\location......

Merci pour votre aide...

Re: associer une image à des données envoyées via un formula

Posté : 03 mars 2012, 23:10
par Ryle
Si tu as le message "undefined variable", c'est que tu as encore un $image qui traine quelque part :)

Quant à l'affichage de l'image, j'aurais tendance à dire que l'url que tu as en base ne devrait pas contenir les dossiers wamp ou www. L'appel à http://localhost/ pointe (en théorie) directement sur ton répertoire www. C'est peut être donc juste un problème de chemin :)

Re: associer une image à des données envoyées via un formula

Posté : 12 mars 2012, 13:44
par fati
slt moi aussi j'ai une application : location de séjour des vacances :D et je veux insérer un champs dans la table qui est de type image est ce c'est posible #-o