aide pour image php

aide pour image php - PHP - Programmation

Marsh Posté le 15-06-2006 à 10:55:33    

alors je dois faire une requête. au départ je sélectionne un truc dans une liste déroulante et suite à une selection j'ai la ref du produit, la désignation, l eprix et la photo. Mais la photo se trouve dans un répertoire et je ne sais pas comment on utilise l'accès dans une requête. En fait pour une code de produit j'ai une image. Et l'image a le même code que le produit. Elle se trouve dans un répertoire C dans mes documents  dans photo. Dois-je définir tous le chemin d'accès dans ma requête?

Reply

Marsh Posté le 15-06-2006 à 10:55:33   

Reply

Marsh Posté le 15-06-2006 à 11:09:35    

Admettons, que tu ai la référence dans une variable $ref, le nom du produit dans $nom, et que le répertoire ``photos`` contenant des JPEGs se trouve dans le même répertoire que la page d'affichage des produits, ansi que le répertoire ``mini`` contenant les miniatures:

Code :
  1. echo "<a target=_new href=\"phtos/$ref.jpg\">";
  2. echo "<img border=0 src=\"mini/$ref.jpg\" alt=\"".htmlentities($nom)."\" title=\"".htmlentities($nom)."\">";
  3. echo "</a>";


Oilà, ça t'affiche la miniature, mets le nom du produit en info-bulle, et affiche dans une nouvelle fenêtre la photo en grand quand on clique sur l'image.

Reply

Marsh Posté le 15-06-2006 à 11:16:13    

ok c'est exactement ce que je dois faire.Le truc c'est que là j'ai fait une requête mais je dois afficher la ref dans un textbox, la photo juste en face, la designation en dessous et le prix en dessous. Est ce que déjà mon code est juste??

Code :
  1. <html>
  2. <head>
  3. <title> nouveau </title>
  4. </head>
  5. <?
  6.     $connect=mysql_connect("localhost","root","" );
  7.     mysql_select_db("jade",$connect)or die ("erreur de connection" );
  8. ?>
  9. <body>
  10. Type de produit :
  11.  <?
  12.   $type=$_POST["liste"];
  13.   $query="select designation,code,prix h.t,vignette where type='".addslashes($_POST['liste'])."'";
  14.   $result=mysql_query($query);
  15.   while($row=mysql_query($query));
  16.    {
  17.     echo".$row["designation"].$row["PRIX H.T."].$row["code"].$row["vignette"]";
  18.    }
  19.   ?>
  20.  </body>
  21. </html>

Reply

Marsh Posté le 15-06-2006 à 11:32:05    

Ligne 18:
>            while($row=mysql_query($query));
c'est mysql_fetch_array($result)
 
> addslashes($_POST['liste'])
utilise plutôt mysql_real_escape_string()

Reply

Marsh Posté le 15-06-2006 à 11:43:39    

ok donc le addslashes est remplacé par mysql.....
sinon pour l'imagedans la requête je dois l'integrer comment?

Reply

Marsh Posté le 15-06-2006 à 11:46:49    

ben.. comme je te l'ai indiqué plus haut... tu remplace simplement les $ref et $nom par $row['code'] et $row['designation'].
 
Et mets tes photos dans un répertoire ``photos``, et tes miniatures dans un répertoire ``mini``, sinon change l'url du lien et de la source de l'image.

Reply

Marsh Posté le 15-06-2006 à 11:49:49    

ok pour le changement j'ai compris. Mon problème c'est que j'ai fait une requête globale pour avoir tous les resulats mais après il faut que je découpe chaque résultat. Le plus simple serait pas de faire plusieurs requêtes?

Reply

Marsh Posté le 15-06-2006 à 11:51:58    

heu, veux tu dire, découper la liste de résultats en pages?
Dans ce cas, vois du côté de mysql: LIMIT et OFFSET, qui permettent de sélectionner juste une partie des résultats.
Puis ajoute des liens suivant/précédent avec en paramètre les bons OFFSETs.

Reply

Marsh Posté le 15-06-2006 à 12:15:58    

non mais en fait j'ai un sorte de formulaire ou je vais balancer les resultats de mes requetes.seulement je n'ai fait qu'une requete pour avoir a la fois la ref,le code.... Comment faire pour mettre la ref dans un truc, la designation dans un autre??

Reply

Marsh Posté le 15-06-2006 à 12:53:45    

je pige pas... un truc du genre peut être:

Code :
  1. echo '<p align=center>'.$row['code'];
  2. // mettre la photo ici
  3. echo '<br>'.$row['designation'].'<br>'.$row['PRIX H.T.'].'</p>';


Reply

Marsh Posté le 15-06-2006 à 12:53:45   

Reply

Marsh Posté le 15-06-2006 à 13:01:35    

alors si tu as une adresse ou je peux envoyer une interface ce serait plus simple. Mais sinon je t'explique plus simplement

Reply

Marsh Posté le 15-06-2006 à 13:40:29    

c'est quoi ton interface?
met-là en ligne si tu peut, et explique

Reply

Marsh Posté le 15-06-2006 à 14:21:33    

alors mon interface c'est une première page avec une liste déroulante. Je clique sur un élément de cette liste et ca m'affiche un ensemble d'informations.  
 
REF:............                                 (la photo)
 
description du produit:
..........................
..........................
..........................
 
                                       Prix H.T. ........................

Reply

Marsh Posté le 15-06-2006 à 14:28:53    

mon code me marque une erreur sur la ligne 21 et je ne vois pas pourquoi?
 

Code :
  1. <html>
  2. <head>
  3. <title> nouveau </title>
  4. </head>
  5. <?
  6.     $connect=mysql_connect("localhost","root","" );
  7.     mysql_select_db("jade",$connect)or die ("erreur de connection" );
  8. ?>
  9. <body>
  10. Type de produit :
  11.  <?
  12.   $type=$_POST["liste"];
  13.   $query="select designation,code,prix h.t,vignette where type=$type;
  14.   $result=mysql_query($query);
  15.   while(mysql_fetch_array($result));
  16.    {
  17.     echo"<tr><td>".$row["DESIGNATION"]."</td><td>".$row["PRIX H.T."]."</td><td>".$row["CODE"]."</td></tr>";
  18.    }
  19.   ?>
  20.  </body>
  21. </html>

Reply

Marsh Posté le 15-06-2006 à 14:37:38    

princesse926 a écrit :

Code :
  1. echo"<tr><td>".$row["DESIGNATION"]."</td><td>".$row["PRIX H.T."]."</td><td>".$row["CODE"]."</td></tr>";



 
Heu, j'aurais plutôt fais un  

Code :
  1. echo"<tr><td>".$row[0]."</td><td>".$row[1]."</td><td>".$row[2]."</td></tr>";


car

Code :
  1. $row["DESIGNATION"]


 
ça me semble louche... :??:


---------------
Je donne souvent l'air d'être ailleurs, mais en faite, je ne suis nulle part...
Reply

Marsh Posté le 15-06-2006 à 14:40:28    

Je suis pas assez calé en CSS pour le faire de tête...
 
bon.. en gros.. tu mets chacune des infos dans un cadre <div></div>
Dans un premier temps, je te met le CSS à ajouter dans chaque tag, ensuite tu fera la feuille de style.
 
Pour ref: <div style="clear:left;">
Pour photo: pas besoin de div, juste <img style="text-align: right;clear:right;" ...>
Pour description: <div style="width:50%;">
Pour prix: <div style="text-align: right">
 
Avec des retour à ala ligne (<br> ) là où il faut.
 
Le tout dans <p align=center style="width:100%"> ... </div>
 
De la doc:
http://www.w3.org/TR/CSS1

Reply

Marsh Posté le 15-06-2006 à 14:41:46    

voui avec les tableaux ça marche aussi.
il me semble que tu oublie un espace entrre echo et "

Reply

Marsh Posté le 15-06-2006 à 14:42:58    

+1 :)
 
Et la soluce avec des <div> est plus...artistique !
 
Edit : je ferais en plus un div pour l'image, pour pouvoir être tranquille par la lsuite, si tu veux modifier quelque chose dedans, ou rajouter une bordure, etc.


Message édité par Glock21 le 15-06-2006 à 14:44:18

---------------
Je donne souvent l'air d'être ailleurs, mais en faite, je ne suis nulle part...
Reply

Marsh Posté le 15-06-2006 à 14:52:05    

princesse926 a écrit :

mon code me marque une erreur sur la ligne 21 et je ne vois pas pourquoi?


 
 

Code :
  1. while(mysql_fetch_array($result, MYSQL_ASSOC));


Si tu veux un tableau associatif (et être sûr que s'en est un) rajoute MYSQL_ASSOC
 
Ensuite, de part le fait que c'est un tableau associatif dont les clés sont les noms des champs de la requete, il faut recuperé les valeurs avec les bonnes clés :

Code :
  1. select designation,code,prix h.t,vignette where type=$type


(d'ailleurs, le champ prix h.t je le sens pas du tout du tout...tu devrais le mettre entre quote a l'envers (ceux là : `nom_du_champ`)
mysql_fetch_array va te renvoyé un tableau :  

Code :
  1. $row['designation'] = valeur de designation


 
donc a mon avis, le truc qui va pas, c'est pour le prix ht : tu peux renomer ton champ dans ton select :  

Code :
  1. select designation,code,`prix h.t` AS prix_ht,vignette where type=$type


et après :  

Code :
  1. echo"<tr><td>".$row["DESIGNATION"]."</td><td>".$row['prix_ht']."</td><td>".$row["CODE"]."</td></tr>";


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 15-06-2006 à 14:56:25    

ok je vais essayer ca

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed