Affichage photo

Résolu
01cod10 Messages postés 110 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 13 août 2007 - 2 sept. 2005 à 10:56
01cod10 Messages postés 110 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 13 août 2007 - 5 sept. 2005 à 18:33
Salut,
J'ai un problème pour afficher la photo d'un membre dans sa fiche. j'arrive à uploader la photo, elle est bien dans le répertoire destination avec son nom d'origine.
Voici un bout de mon code d'affichage


$select = "SELECT * FROM table WHERE pseudo='$pseudo'";


$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );


$total = mysql_num_rows($result);





// si on a récupéré un résultat on l'affiche.


if($total) {






echo '<table border="0" bgcolor="">'."\n";




while ($row = mysql_fetch_array($result)) {


echo '<tr>';


echo '<td>.jpg"/></td>';


echo '<td>'.$row["pseudo"].'</td>';


echo '<td></td>';


echo '</tr>'; etc...

31 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
2 sept. 2005 à 12:38
Heu attends...pourquoi le champ photo est il un blob au juste...? Ca
doit être un varchar, si c'est le lien vers ta photo sur le serveur.

Donne-moi un exemple de ce que tu vois dans un des champs photo ...?



On utilise blob pour stocker des binaires...c'est à dire, par exemple, la photo elle-même!
3
LeTaz Messages postés 22 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 2 septembre 2005
2 sept. 2005 à 11:02
Essaye ca :

Remplace
echo '<td>.jpg"/></td>';
par
echo '<td>.jpg"/></td>';
0
LeTaz Messages postés 22 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 2 septembre 2005
2 sept. 2005 à 11:04
il faut ke le nom de ta photo soit stoké dans ta BDD sinon on ne peut pa savoir quelle photo est associé a la personne.
du coup tu affiche ta photo comme tu affiche le pseudo...
0
01cod10 Messages postés 110 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 13 août 2007
2 sept. 2005 à 11:14
pour la premiere réponse j'ai fait les modifs mais ça n'a rien donné.

Dans le champ photo j'ai stocké le chemin. pouvez vous me dire comment stocker le nom de la photo que l'utilisateur a envoyé
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
LeTaz Messages postés 22 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 2 septembre 2005
2 sept. 2005 à 11:33
Je pourrais detailler plus mais je suis au taf et j'ai un manque de temps.... je t'ai donc mis un code a moi qui marche.... a toi de le modifier qq peu.... si y'a un souci previens moi !

Ex formulaire posté dans la meme page :
echo '<form action="'.$_SERVER['REQUEST_URI'].'" method="post" enctype="multipart/form-data" name="upload'.$data['Num'].'" id="upload" class="login">';
echo 'Insérez votre photo/document avec le champ ci-dessous

';
echo '';
echo '';
echo '';
echo '';
echo '

';
echo '</form>';

traitement :
if ($modiffoto=="1")
{
$lg = $_POST['lg'];
$ph = $_POST['ph'];
$tmp_file = $_FILES['fichier']['tmp_name']; // nom temporaire du fichier uploadé
$size_file = $_FILES['fichier']['size']; // poids du fichier uploadé
$name_file = $_FILES['fichier']['name']; // nom du fichier uploadé
$type_file = substr(strstr($name_file,'.'),1); // extension du fichier uploadé
$repertoire = 'images/';
$extensions = 'png|PNG|jpg|JPG|jpeg|JPEG|gif|GIF|bmp|BMP|pdf|PDF|doc|DOC|xls|XLS'; // extensions de fichier autorisées

if ($tmp_file=="")// AUTRE CONDITION POSSIBLE !is_uploaded_file($tmp_file)
{ $erreur = ':: ERREUR ttt ::
pour ajouter une photo, vous devez obligatoirement en choisir une avec le bouton parcourir.'; }
else
{
// liste des extensions autorisées et verification
$ext=explode("|", $extensions);

for ($cpt=0; $cpt<(count($ext)); $cpt++)
{
if ($type_file==$ext[$cpt])
{
$auth_file=1;
}
}


for ($v=1; $v<4; $v++)
{
$name_file=(mt_rand(1,1000000));
$name_file=(ceil($name_file));
$name_file=$name_file.".".$type_file;

if (file_exists($destination.$name_file))
{
$v=1;
}
else
{
$v=20;
}
}


// teste autorisation extension
if ($auth_file!=1)//(!isset($auth_file))
{
exit('Type de fichier non autorisé au téléchargement');
}


chmod($repertoire.$name_file, 0755);//777
// OU
chmod($repertoire, 0755);//777


//echo $repertoire.$name_file.'
';

// on copie le fichier dans le dossier de destination
if (!move_uploaded_file($tmp_file, $repertoire.$name_file))
{
exit('Impossible de copier le fichier dans '.$repertoire.'.');
}

$sql = 'SELECT * FROM table WHERE Num="'.$lg.'"'; //num etant le n° auto du membre
$req = mysql_query($sql) or die('Erreur SQL !
'.$sql.'
'.mysql_error());
$res = mysql_numrows($req);
$data = mysql_fetch_array($req);


if ($depart=="iut") // une condition non necessaire sauf pour moi
{
$data['Photo'.$ph] = "../".$data['Photo'.$ph];
$repertoire_write = str_replace("../", "", $repertoire);
}
else
{
$data['Photo'.$ph] = $data['Photo'.$ph];
$repertoire_write = $repertoire;
}
if ($data['Photo'.$ph]!= "")
{
chmod($data['Photo'.$ph], 0755);
unlink($data['Photo'.$ph]);
}


$sqlph = 'UPDATE '.$depart.' SET Photo'.$ph.'="'.$repertoire_write.$name_file.'" WHERE Num="'.$lg.'"';
mysql_query($sqlph) or die('Erreur SQL !'.$sqlph.'
'.mysql_error());
}
}
0
LeTaz Messages postés 22 Date d'inscription lundi 21 juin 2004 Statut Membre Dernière intervention 2 septembre 2005
2 sept. 2005 à 11:40
Le but c'est au moment d'enregistrer ton image sur le serveur, tu recupere les info du fichier image (au moin le nom) que tu traite et tu fais un requete qui update la ligne de ta BDD correspondant a ton membre...
0
01cod10 Messages postés 110 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 13 août 2007
2 sept. 2005 à 12:07
Là je suis complètement perdu. Car je cherche à comprendre. je comprends que vous ayez pas le temps. si quelqu'un d'autre peut m'aider ce sera bien.

j'explique encore mon problème.

L'utilisateur envoie son formulaire remplir avec la photo qui a comme nom toto.jpeg sur son disque dur. Lors de l'envoie le chemin de la photo est sauvegarder dans le champ photo de type blob.Upload -) toto.jpeg se retrouve dans le répertoire de destination. J'arrive pas a afficher la photo de chaque membre. Ou bien dois je créer une autre table pour enrgistrer que les données des photos.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
2 sept. 2005 à 12:19
Hello,



si je reprends ton code, il manque un truc. Tu vas chercher les
resultats de ta requete, ok. Pour le pseudo, tu fais bien
$row['pseudo']. Mais pour la photo, tu fais : echo $photo.

Cette variable n'existe pas...



Je corrige en rouge :



$select = "SELECT pseudo, photo FROM table WHERE pseudo='$pseudo'";

$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );

$total = mysql_num_rows($result);

// si on a récupéré un résultat on l'affiche.

if($total) {

echo '<table border="0" bgcolor="">'."\n";

while ($row = mysql_fetch_array($result)) {

echo '<tr>';

echo '<td>.jpg"/></td>';

echo '<td>'.$row["pseudo"].'</td>';

echo '<td></td>';

echo '</tr>'; etc...
0
01cod10 Messages postés 110 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 13 août 2007
2 sept. 2005 à 12:24
.jpg"/>
voilà ce que j'ai comme réseultat
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
2 sept. 2005 à 12:26
Ce qui veut dire que ton champ "photo" dans ta table "table" estvide pour le pseudo = $pseudo.



Donne la structure de ta table.
0
01cod10 Messages postés 110 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 13 août 2007
2 sept. 2005 à 12:35
C'est vrai voici ce que j'ai dans le champ photo [BLOB - 0 Octets]. Ce que je ne comprends pas la photo a été bien uploadée dans mon repertoire destination. pourquoi ce champ est vide et tous les autres sont renseignés.

ma table contient plus de 20 champs. Le champ photo est de typle blob
0
01cod10 Messages postés 110 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 13 août 2007
2 sept. 2005 à 12:41
Voici la structure

CREATE TABLE `table` (
`num` int(15) NOT NULL auto_increment,
`pseudo` varchar(6) NOT NULL default '',
`motdepasse` varchar(6) NOT NULL default '',
`initial` datetime NOT NULL default '0000-00-00 00:00:00',
`nom` varchar(50) NOT NULL default '',
`prenom` varchar(50) NOT NULL default '',
`datenaissance` date NOT NULL default '0000-00-00',
`jesuis` varchar(12) NOT NULL default '',
`jerecherche` varchar(12) NOT NULL default '',
`email` varchar(50) NOT NULL default '',
`adresse` varchar(50) NOT NULL default '',
`codepostal` varchar(10) NOT NULL default '',
`ville` varchar(30) default NULL,
`pays` varchar(30) default NULL,
`telephone` varchar(20) default NULL,
`nationalite` varchar(30) default NULL,
`taille` varchar(30) default NULL,
`poids` varchar(30) default NULL,
`yeux` varchar(30) default NULL,
`cheveux` varchar(30) default NULL,
`etatcivil` varchar(30) default NULL,
`nombredenfants` char(2) default NULL,
`fumeur` varchar(10) default NULL,
`etude` varchar(30) default NULL,
`profession` varchar(30) default NULL,
`loisirs` enum('football','basketball','natation','tennis','lecture','voyage','cinema','internet','balade','autres') NOT NULL default 'football',
`photo` blob NOT NULL,
`description` text,
PRIMARY KEY (`num`),
KEY `pseudo` (`pseudo`),
KEY `motdepasse` (`motdepasse`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='membres inscrits' AUTO_INCREMENT=2 ;
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
2 sept. 2005 à 12:43
Ok mais donne moi quelques exemples de ce que tu as dans le champ photo stp.
0
01cod10 Messages postés 110 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 13 août 2007
2 sept. 2005 à 12:54
J'ai dans le champ photo de ma table [BLOB - 0 Octets]. pour deux enregistrements effectués. Le répertoire destination contient les deux photos envoyées via le formulaire.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
2 sept. 2005 à 13:09
Lol, donne moi ce que tu as dedans! dans quelques-un de ces champs! le contenu, la valeur quoi. ce qui est écrit dans le champ!

Blob 0 Octets ? tu m'étonnes... attends, c'est ce que tu as dans la valeur ? nan...je ne pense pas.
0
01cod10 Messages postés 110 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 13 août 2007
2 sept. 2005 à 13:20
c:\Easyphp1-8\www\web\toto.jpg
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
2 sept. 2005 à 13:30
Oulo...

Ok...2 choses : transformes déjà ton champ photo. passe le du type blob, au type varchar (50) (50 ou plus, comme tu le sens).

Ensuite...là tu as le chemin complet. a ta place, je mettrai le chemin
relatif de ton image. D'ailleurs tu avais l'air de penser, dans ton
script, qu'elle se trouvait dans un répertoire /data/...

ce n'est visiblement pas le cas ?

Bref tu dois retrouver ton chemin relatif, ou complet comme tu préfères : donc par exemple:

/data/toto.jpg

soit

http://www.tonsite.com/data/toto.jpg



Ensuite dans ta balise image :

" alt ="Description de la photo" />
0
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
2 sept. 2005 à 13:47
Luj, dites ca ne serait pas ca :



echo '<td>$row['photo'], '.jpg" /></td>';

<hr>Si ma reponse te convient, merci de l'accepter !
0
01cod10 Messages postés 110 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 13 août 2007
2 sept. 2005 à 13:51
Rien n'est enregistré dans le champ photo de ma table par conséquent la photo ne s'affiche pas. Une question est ce une bonne méthode si je fais un autre script qui ouvre le répertoire qui contient les photos et appelé ce script dans le code d'affichage du membre avec sa photo. c'est une idée comme ça. mais en réfléchisant comment allez prendre la bonne photo.
0
01cod10 Messages postés 110 Date d'inscription mardi 30 août 2005 Statut Membre Dernière intervention 13 août 2007
2 sept. 2005 à 14:18
Merci JOJO mais cela ne marche toujours pas.

* Je voulais savoir pourquoi j'ai [BLOB 0 octets]
* quand je donne à mon champ photo le type var rien ne s'affiche.

Je pense que je dois régler ce problème avant toute chose.
0
Rejoignez-nous