Page 1 sur 4

Affichage images

Posté : 28 nov. 2006, 14:38
par dunbar
Bonjour,

J'ai deux TABLES dans la même base dans la TABLE 1 est stocker le nom de l'image et dans la TABLE 2 le chemin.
Comment faire pour Afficher l'image ?

J'ai suivi les conseils de ZEUS dans un autre poste et créer une jointure en mes TABLES.

Voici mes TABLES

CREATE TABLE `annonce` (
`id_annonce` int(11) NOT NULL auto_increment,
`id_directory` int(16) NOT NULL,
`type` varchar(30) NOT NULL,
`prix` decimal(10,2) NOT NULL,
`codepostal` decimal(5,0) NOT NULL,
`nb_chambre` decimal(2,0) NOT NULL,
`nb_garage` decimal(2,0) NOT NULL,
`nb_file` int(1) NOT NULL,
PRIMARY KEY (`id_annonce`),
KEY `id_directory` (`id_directory`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


CREATE TABLE `directory` (
`id_directory` int(11) NOT NULL auto_increment,
`name` varchar(75) NOT NULL, <---- Chemin Images
PRIMARY KEY (`id_directory`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


CREATE TABLE `file` (
`id_file` int(11) NOT NULL auto_increment,
`id_directory` int(16) NOT NULL,
`name` varchar(75) NOT NULL, <----Nom de l'image
PRIMARY KEY (`id_file`),
KEY `file_id_directory` (`id_directory`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

ALTER TABLE `annonce`
ADD CONSTRAINT `annonce_id_directory` FOREIGN KEY (`id_directory`) REFERENCES `directory` (`id_directory`);

--
-- Contraintes pour la table `file`
--
ALTER TABLE `file`
ADD CONSTRAINT `file_id_directory` FOREIGN KEY (`id_directory`) REFERENCES `directory` (`id_directory`);
D'avance merci :wink:

Posté : 28 nov. 2006, 14:43
par DocType
Comme d'habitude, tu sors les valeurs de ta requête et tu les concatène afin d'avoir le chemin souhaité :wink:

Posté : 28 nov. 2006, 14:59
par dunbar
Comme d'habitude, tu sors les valeurs de ta requête et tu les concatène afin d'avoir le chemin souhaité :wink:
Oui je sais (je comprend pas pourquoi j'y avais pas penser).

J'imagine bien, mais je ne sais apas comment m'y prendre.

Posté : 28 nov. 2006, 15:02
par zeus
et ...

Est-ce que celà signifie que le problème est résolu ou pas ?

Est-ce que tu as tout compris ou est-ce que tu voudrais une aide quelquonque ?

EDIT ---
Excuse, tu as du éditer ton post pendant que je l'écrivais.

Donc, reprennons. Dans ta base, tu as le chemin de l'image. Suite au précédent post, tu as du réussir à récupérer ce chemin.

Pour afficher les images, il te suffit d'écrire la balise <img> pour laquelle le src contiendra le chemin que tu as extrait de la base ...

Posté : 28 nov. 2006, 15:09
par dunbar
et ...

Est-ce que celà signifie que le problème est résolu ou pas ?

Est-ce que tu as tout compris ou est-ce que tu voudrais une aide quelquonque ?

EDIT ---
Excuse, tu as du éditer ton post pendant que je l'écrivais.

Donc, reprennons. Dans ta base, tu as le chemin de l'image. Suite au précédent post, tu as du réussir à récupérer ce chemin.

Pour afficher les images, il te suffit d'écrire la balise <img> pour laquelle le src contiendra le chemin que tu as extrait de la base ...
Oui j'ai déjà suivi ta logique
echo "<img src='".$img."' style='width:".$largeur."px;height:".$hauteur."px' alt='".$legende."' />";
Et j'ai créer une $variable --> $img.
Mais je ne trouve pas comment associer à cette variale deux différent champs de ma base :?:

Posté : 28 nov. 2006, 15:26
par DocType
[...] tu sors les valeurs de ta requête et tu les concatène afin d'avoir le chemin souhaité :wink:
Quel est ton problème dans ce qui reste à faire ? Executer la requête ? concaténer ?

Posté : 28 nov. 2006, 15:34
par dunbar
[...] tu sors les valeurs de ta requête et tu les concatène afin d'avoir le chemin souhaité :wink:
Quel est ton problème dans ce qui reste à faire ? Executer la requête ? concaténer ?
Je dois récupéré deux champs (nom et chemin) et je ne sais pas comment faire correspondre la valeur de ma variable aux deux champs de ma table

$img = champs1+champ2
ou du style
$img = file['name']+directory['name'];

Simplement
Enfin ci effectivement c'est bien la bonne méthode ?

Posté : 28 nov. 2006, 15:34
par zeus
1/ que signifie pour toi cette écriture "$variable --> $img"

2/ Dans ce code
echo "<img src='".$img."' style='width:".$largeur."px;height:".$hauteur."px' alt='".$legende."' />"
Qu'est ce qui ne te convient pas ?
Tu voudrais afficher le nom de l'image ? pourquoi ne pas créer une variable $nom qui le contiendrais ?

EDIT --
Je viens de lire la réponse du dessus.

Effectivement, pour que la variable $img contienne le chemin et le nom, il faut concaténer les 2. En PHP, c'est le point (.) pas le plus (+) qui te le permet.

Posté : 28 nov. 2006, 15:39
par DocType
Je dois récupéré deux champs (nom et chemin) et je ne sais pas comment faire correspondre la valeur de ma variable aux deux champs de ma table

$img = champs1+champ2
ou du style
$img = file['name']+directory['name'];

Simplement
Enfin ci effectivement c'est bien la bonne méthode ?
Le + c'est en javascript, le . est son équivalent php
voir => http://www.commentcamarche.net/php/phpop.php3

Posté : 28 nov. 2006, 15:42
par dunbar
Je dois récupéré deux champs (nom et chemin) et je ne sais pas comment faire correspondre la valeur de ma variable aux deux champs de ma table

$img = champs1+champ2
ou du style
$img = file['name']+directory['name'];

Simplement
Enfin ci effectivement c'est bien la bonne méthode ?
Le + c'est en javascript, le . est son équivalent php
voir => http://www.commentcamarche.net/php/phpop.php3
ou je sais j'avais mis + pour l'exemple.
Ok je cherche alors.

Posté : 28 nov. 2006, 16:00
par dunbar
1/ que signifie pour toi cette écriture "$variable --> $img"

2/ Dans ce code
echo "<img src='".$img."' style='width:".$largeur."px;height:".$hauteur."px' alt='".$legende."' />"
Qu'est ce qui ne te convient pas ?
Tu voudrais afficher le nom de l'image ? pourquoi ne pas créer une variable $nom qui le contiendrais ?

EDIT --
Je viens de lire la réponse du dessus.

Effectivement, pour que la variable $img contienne le chemin et le nom, il faut concaténer les 2. En PHP, c'est le point (.) pas le plus (+) qui te le permet.
Voilà j'esaye cette manière mais elle n'es pas correct
$img = ['file.name'][directory.name];

Posté : 28 nov. 2006, 16:01
par zeus
S'il te plait, arrete de citer le post du dessus. Non seulement c'est inutile puisqu'il est au dessus mais en plus ça prend une place par possible pour ne rien apporter à ta réponse ... ;)

Posté : 28 nov. 2006, 16:03
par zeus
Peut tu m'expliquer pourquoi tu es passé de cette écriture
$img = file['name']+directory['name']; 
a celle là
$img = ['file.name'][directory.name];
Il me semble que nous n'avons parlé que de + et de . ;)

Posté : 28 nov. 2006, 16:03
par DocType
Voilà j'esaye cette manière mais elle n'es pas correct
$img = ['file.name'][directory.name];
Dna sun message précédent tu donnes $img = file['name']+directory['name'];

Pourquoi ça se transforme en une structure différente en cours de route ? Et si tu remplacait totu simplement les + par les . sans rien tocuher d'autre ?...

Posté : 28 nov. 2006, 16:10
par dunbar
$img = file['name'].directory['name'];
me donne comme erreur
Parse error: parse error, unexpected '[' in E:\wamp\www\mabrique\immo\include\new.php on line 12